|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
нашел неточность шаманство будет начато если компилятор встретит метод с async даже если это метод пустой ( без await)все равно создаст структуру и запустит код через нее. я не знаю, приживется ли, честно сказать я ей не пользовался никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:09 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей К, сов. верно, они и позиционируется ее с этой стороны -(не использует дополнительных ресурсов) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:14 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КГде-то в степиТут всё похоже на разворот циклов в конечный автомат в yield return . Если мне не показалось, прошлая реализация "этого" была через обёртывания следующего за await кода в Task.ContinueWith. Видимо не понравилось. Решили добавить ещё одну абстракцию, позволяющую обобщить Task, IObservable и прочие "асинхронности". И сделали через автомат, видимо решили сэкономить на количестве обращений к пулу потоков. А через что будет "продолжение" - зависит от наличия у "первого потока" контекста синхронизации. Если есть - всё пойдёт через него. Если нет - через пул потоков. Причины нового варианта: - На каждый Task требуется выделение памяти, что приводит к лишней работе сборщика мусора. Это становится критичным при высоких нагрузках - Ожидания обрабатываются отдельным тредом, а Боливар не может выдержать много. По непроверенным данным не больше 64. - Таски, трэды и прочие радости совершенно не нужны, если идет вызовы i/o, которые обрабатываются операционкой. ЗЫ Открою вам еще одну маленькую тайну : стеки не используются, локи не работают, 'продолжения' может не быть вовсе ConfigureAwait(false) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2012, 19:17 |
|
|
start [/forum/topic.php?fid=20&msg=38085722&tid=1405470]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 471ms |
0 / 0 |