DataTable. Выберите по сравнению с DataTable.rows. Найдите по сравнению с foreach по сравнению с Находкой (Предикат <T>) / Лямбду

Настройте CSS, удалите некоторые и упростите некоторые, чтобы это исправить.

html,
body,
.backgroundBox,
.elemBox.graphic img {
  width: 100%;
  height: 100%;
}

html,
body {
  margin: 0;
  overflow: hidden;
  background: rgba(0, 0, 0, 0);
}

.elemBox,
.backgroundBox.design,
.elemBox>* {
  position: absolute;
}
<svg id="designBox" width="100%" height="100%" viewBox="0 0 1242 2688">
  <foreignObject width="100%" height="100%">
      <img class="backgroundBox design" src="/images/general/transparent.gif" style="left:0%; top:0%; width:100%; height:100%; background:#00B9FC">
      <div class="elemBox graphic movable" style="left: 0px; width: 1242px; height: 2688px; top: 0px;" id="g3kIEZGGog71">
        <div class="foregroundBox" style="top: 74px; left: 76px; width: 1090px; height: 2540px;">
          <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2707120/Screenshot.png">
        </div>
        <img class="backgroundBox" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/2707120/XS_Max_Space_GrayNEW.png">
    </div>
  </foreignObject>
</svg>

19
задан Community 23 May 2017 в 12:34
поделиться

5 ответов

На моем autocomplete, я попробовал сначала эти linq/lambda подход, производительность является немного медленной. DataTable.Select быстрее, чем linq, таким образом, я использую это. Я еще не сравнил производительность между datatable.Select и datatable.Find

4
ответ дан 30 November 2019 в 05:07
поделиться

Мы могли размышлять обо всем этом день, но так как это не огромная часть кода, почему бы не записать каждому и сравнить их друг с другом?

public delegate void TestProcedure();

public TimeSpan Benchmark(TestProcedure tp)
{
    int testBatchSize = 5;
    List<TimeSpan> results = new List<TimeSpan>();
    for(int i = 0; i<testBatchSize; i++)
    {
        DateTime start = DateTime.Now;
        tp();
        results.Add(DateTime.Now - start);
    }
    return results.Min();
}
2
ответ дан 30 November 2019 в 05:07
поделиться

Что относительно DataView? Вы могли применить свое условие фильтра И вид приоритет, и легко выполнить итерации через результаты для добавления к результатам.

0
ответ дан 30 November 2019 в 05:07
поделиться

согласно следующему блогу

http://blog.dotnetspeech.net/archive/2008/08/26/performance--- -datatable.select-vs-dictionary.aspx

DataTable.Rows.Find намного быстрее, чем DataTable.Select.

1
ответ дан 30 November 2019 в 05:07
поделиться

В моем блоге диаграммы не публикуются; более подробную информацию можно найти на http://msdn.microsoft.com/en-us/library/dd364983.aspx

Еще одна вещь, которую я с тех пор обнаружил, заключается в том, что для больших наборов данных использование общий словарь с цепочкой работает очень хорошо. Это также помогает облегчить многие проблемы, вызванные операциями сортировки, необходимыми для операций агрегирования, таких как min и max (либо с DataTable.Compute , либо LINQ ).

By "chained" универсальный словарь "Я имею в виду Dictionary (Of String, Dictionary (Of String, Dictionary (Of Integer, List (Of DataRow))))» или аналогичный метод, в котором ключом для каждого словаря является поисковый запрос .

Конечно, это не будет полезно при любых обстоятельствах, но у меня есть по крайней мере один сценарий, в котором реализация этого подхода приводит к повышению производительности 500x .

В вашем случае я бы подумал об использовании простого словаря с первыми 1-5 символами, а затем Список (из строк) . Вам придется создать этот словарь один раз, добавив слова в списки с первыми 1-5 символами, но после этого вы сможете получить невероятно быстрые результаты.

Я обычно оборачиваю такие вещи в класс, который позволяет мне легко добавлять слова. Вы также можете использовать SortedList (Of String) для автоматической сортировки результатов. Таким образом, вы можете быстро найти список слов, соответствующих первым набранным N символам.

Я бы подумал об использовании простого словаря с первыми 1-5 символами, а затем List (Of String) . Вам придется создать этот словарь один раз, добавив слова в списки с первыми 1-5 символами, но после этого вы сможете получить невероятно быстрые результаты.

Я обычно оборачиваю такие вещи в класс, который позволяет мне легко добавлять слова. Вы также можете использовать SortedList (Of String) для автоматической сортировки результатов. Таким образом, вы можете быстро найти список слов, соответствующих первым набранным N символам.

Я бы подумал об использовании простого словаря с первыми 1-5 символами, а затем List (Of String) . Вам придется создать этот словарь один раз, добавив слова в списки с первыми 1-5 символами, но после этого вы сможете получить невероятно быстрые результаты.

Я обычно оборачиваю такие вещи в класс, который позволяет мне легко добавлять слова. Вы также можете использовать SortedList (Of String) для автоматической сортировки результатов. Таким образом, вы можете быстро найти список слов, соответствующих первым набранным N символам.

но после этого вы сможете получать невероятно быстрые результаты.

Я обычно заключаю такие вещи в класс, который позволяет мне легко делать такие вещи, как добавление слов. Вы также можете использовать SortedList (Of String) для автоматической сортировки результатов. Таким образом, вы можете быстро найти список слов, соответствующих первым набранным N символам.

но после этого вы сможете получать невероятно быстрые результаты.

Я обычно заключаю такие вещи в класс, который позволяет мне легко делать такие вещи, как добавление слов. Вы также можете использовать SortedList (Of String) для автоматической сортировки результатов. Таким образом, вы можете быстро найти список слов, соответствующих первым набранным N символам.

8
ответ дан 30 November 2019 в 05:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: