Почему сортировка использования CollectionViewSource. SortDescriptions является медленным?

Обычно файл cookie содержит идентификационный номер сеанса. Идентификационный номер затем подключается к данным сеанса, которые хранятся на сервере. Обычный процесс:

  1. Отправка формы входа
  2. Сервер проверяет имя пользователя и пароль
  3. Если правильно, имя пользователя сохраняется в файле сеанса на сервере, наряду с другой полезной информацией о пользователе (если это администратор сайта, модератор, ИД пользователя и т. д.).
  4. Сервер отправляет обратно куки-файл, содержащий идентификационный номер, который идентифицирует файл сеанса.
  5. Браузер отправляет куки-файл с каждым запросом на этот сервер, поэтому сервер может открыть файл сеанса и прочитать сохраненные данные.

Обычно пароль отправляется не более одного раза (при входе в систему на шаге 1).

8
задан Dave Clemmer 24 August 2011 в 20:38
поделиться

1 ответ

Вы правы, это налог на отражение. Некоторое время назад я очень внимательно посмотрел на производительность DataGrid, и здесь отражение было узким местом. Независимо от того, насколько быстр алгоритм сортировки, они не кешируют значение свойства между двумя сравнениями. Таким образом, даже если у вас есть n * ln (n) сравнений, при n == 100 000 вы получите ~ 1 000 000 операций. Каждый операнд использует отражение для получения значения, поэтому у вас есть 2 000 000 вызовов отражения в налогах :) ... ListCollectionView.CustomSort - идеальное решение здесь.

PS: В конце концов,

9
ответ дан 5 December 2019 в 17:38
поделиться
Другие вопросы по тегам:

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