ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] mathopd ranges




> Что характерно, у меня результаты слегка странные (особенно для poll 512
> desc.), может правда дело в Солярке (или что скорее - в PentiumPro c кешом
> 1Мб):
>       select (empty)     4.114 usec    0.243 Mhz
>    select (16 desc.)     4.313 usec    0.232 Mhz
>   select (512 desc.)     5.700 usec    0.175 Mhz
>         poll (empty)     3.316 usec    0.302 Mhz
>      poll (16 desc.)     8.177 usec    0.122 Mhz
>     poll (512 desc.)     3.684 usec    0.271 Mhz

В солярисе select(3) реализован поверх poll(2). Вообще, весь интерфейс
BSD-sockets там в отдельной библиотеке. Напротив, в ранних линуксах
(2.0) poll реализуется поверх select -- man 2 poll. Так что в таких
системах сравнивать что-либо бессмысленно, просто -- как аксиома -- в
солярисе лучше использовать poll а в старых линуксах select.

В этом смысле автор mathopd'а -- определённо адепт соляриса. :)

Далее, насчёт увеличения производительности при большом числе
дескритпторов. Не забывайте о том, что poll может вернуть и (-1) -- по
самым разным причинам. И при большом числе дескрипторов такие причины
становятся всё более вероятными. Например, poll может проверять,
существуют ли передаваемые ему дескрипторы, и при неверном дескрипторе
возвращать (-1) прямо в процессе копирования. При этом, есть некоторая
вероятность того, что начальный участок неинициализированного массива
pollfds заполнен нулями (т.е. stdin). Так что неплохо бы в тесте
проверять возвращаемое значение:

        BEGIN_TEST
                if (poll(...) == -1) {
                        printf("...");
                        break;
                }
        END_TEST;

Или что-нибудь в этом духе. Тут нужно ещё бы порыться где-нибудь в glibc
и посмотреть, что там на самом деле делает poll. Но мне как-то влом, я
себе уже всё доказал... :)

Хотя, насколько реально существует практическая потребность в httpd для
раздачи статического контента? Если потребность реально есть и если
кто-нибудь готов мне в этом посодействовать -- я может быть и занялся бы
этим более серьёзно.

__
AT
=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.