Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@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@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.