Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Linq и SqlDataReader
|
|||
|---|---|---|---|
|
#18+
Переписал свой маппер на Emit'овские GetProperty и SetValue. Тест проводился на миллионе записей в DataTable (ID, Value), намапливаемых в IEnumerable<T>. Замер времени брался только на маппинг (не на заполнение таблицы, разумеется). Итоги: Reflection vs EmitЗамер 1Замер 2Замер 3Замер 4Замер 5Среднее20162017204320311973 2016.0 48664844487748424835 4852.8 Emit в 2.4 раза быстрее отработал за счёт кеширования свойств. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2011, 12:43 |
|
||
|
Linq и SqlDataReader
|
|||
|---|---|---|---|
|
#18+
МСУ Emit в 2.4 раза быстрее отработал за счёт кеширования свойств.За счёт кодогенерации записи в свойства вместо PropertyInfo.SetValue. Ну и сама кодогенерация, разумеется, кешируется. В случае с чтением из датаридера, возможно, это и не даст существенного выигрыша, по сравнению с временем выполнения запроса. Но и хуже не будет. :-) А в задачах клонирования объектов, мэппингов между объектами, или DataTable и объектом и т. п. это даёт выигрыш в десятки раз. А в задаче сортировки по свойству класса, указываемому динамически (тычок на заголовок грида), без эмита просто не обойтись. В WPF к счастью для этого есть родные механизмы, а вот в WinForms таких возможностей нет. Конечно, в WinForms можно отказаться от типизированных списков в пользу DataTable, но это не наш метод. :-) ЗЫ: Если я не ошибаюсь, вызов делегата происходит медленнее вызова обычного метода. Можно ещё ускорить, заменив генерацию делегата генерацией виртуального метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2011, 13:40 |
|
||
|
Linq и SqlDataReader
|
|||
|---|---|---|---|
|
#18+
Алексей КА в задачах клонирования объектов, мэппингов между объектами, или DataTable и объектом и т. п. это даёт выигрыш в десятки раз. Леня, харэ фантазировать. Привел же замеры, в 2.4 раза на миллионе запией :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2011, 17:46 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1350607]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 383ms |

| 0 / 0 |
