Using fibers to simplify enumerators

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Using fibers to simplify enumerators

Сообщение tyomitch » 08.01.2005 (Сб) 20:06

Рэймонд Чен год назад обещал рассказать, зачем всё-таки нужны фиберы, которые я обсуждаю в http://www.vbstreets.ru/VB/Articles/66058.aspx
На самом деле они, конечно, нужны не для одновременного выполнения нескольких задач, а для одновременного поддержания нескольких стеков. Теперь Рэймонд наконец написал про это статью.

Сабжевая статья состоит из пяти частей:
1: When life is easier for the enumerator - http://weblogs.asp.net/oldnewthing/arch ... 43664.aspx
2: When life is easier for the caller - http://weblogs.asp.net/oldnewthing/arch ... 44281.aspx
3: Having it both ways - http://weblogs.asp.net/oldnewthing/arch ... 44799.aspx
4: Filtering - http://weblogs.asp.net/oldnewthing/arch ... 45800.aspx
5: Composition - http://weblogs.asp.net/oldnewthing/arch ... 46274.aspx

Надеюсь, многим это будет интересно. Такая любопытная часть Win32API до сих пор оставалась совершенно заброшенной.
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 08.01.2005 (Сб) 21:09

Фибры? Интересная штука, не спорю, однако, довольно сложно их использованием достичь какого-то реального превосходства в производительности - по крайней мере, у самой Microsoft это пока получается не очень :).

Дело вот в чем: в настройках MSSQL Server имеется галка "Use Windows NT fibers", установка которой приводит к использованию фибров вместо тредов при работе сервера. Так вот, как говорят знающие люди, реальное увеличение производительности сервера при ее включении наблюдается при соблюдении двух условий: наличие как минимум 4-х (лучше - 8-ми) процессоров и очень активное переключение контекстов, т.е. наличие большого количества клиентских соединений, при этом довольно активно работающих. Более того, прирост невелик и составляет в лучшем случае 15%, а чаще - 5-10. Так что... может, их просто заломало реализовывать что-то реально толковое, и они ограничились минимумом, а может, овчинка действительно того...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.01.2005 (Сб) 23:32

Ennor, статьи-то просмотри...
Они как раз про то, зачем на самом деле нужны фиберы.
Это не "альтернатива" нитям, а совершенно параллельная вещь, которую только по незнанию я и MSSQL Team используют вместо нитей :-)
Другими словами, то, что MSSQL не получает от их использования прироста в производительности - проблема MSSQL, а не фиберов.
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 09.01.2005 (Вс) 6:33

Прочел. Не скажу, что большей части этого я не знал раньше. Впрочем, я все равно уже вряд ли когда-нибудь этим займусь, так что если только из академического интереса...

Ты мне лучше вот что скажи: сколько процентов прироста производительности решета ты получил при переходе на фибры? Вот это вопрос уже важный... Да, и какой проц у тебя (и сколько их, если больше одного :) ).

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2005 (Вс) 6:50

Нисколько, т.к. не пробовал писать его без фиберов. Да и вообще, я тогда скорее искал повод применить фиберы, чем способ ускорить решето :-)
А почему ты решил, что использование фиберов влияет в первую очередь на производительность? Из статьи следует, что в первую очередь оно влияет на удобство программирования, т.к. позволяет иметь одновременно несколько стеков и переключатся между ними.
У меня сложилось впечатление, что ты считаешь, что "фиберы - это как нити, только иногда быстрее, а чаще медленнее". А на самом деле это совсем разные вещи, и мне непонятно, почему ты пытаешься сравнивать производительность у, метафорично выражаясь, "Pentium и Windows" (c) GSerg
Изображение

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 09.01.2005 (Вс) 13:26

Тёмыч, а слабо договориться с автором и перевести на русский, вот бы и пополнения для сайта :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.01.2005 (Вс) 13:43

Имхо, перевод с сохранением ссылки на оригинал можно запостить и так...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 09.01.2005 (Вс) 15:35

GSerg писал(а):Имхо, перевод с сохранением ссылки на оригинал можно запостить и так...


Желательно получить ОК от автора.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 76

    TopList  
cron