On Fri, 14 Dec 2001, Alex Tutubalin wrote:
> > > Распаковка из битов и проверка флагов в pollfd->revents - очень
> > > близкая по сложности операция (плюс-минус сдвиг)
> > >
> > Угу. Ну там нужно не только сдвиг сделать: нужно сделать сдвиг, отрезать
> > младшие биты, вычислить адрес и потом btl и setcb - шесть операций лишних
> > (там еще один movl добавляется)...
> У меня навскидку получилось _лишних_ 3 или 4 при том, что revents -
> short, а с 16-битами P3 хуже работает.
>
Хмм... Может быть - не знаю.
> И 512 байт FD_SET-ов лягут в кэш с существенно
> большей вероятностью, чем 32k pollfd (для 4096 дескрипторов)
>
Ну это-то да.
> > > > > Вообще, почему время должно уходить на пересылку, а не на
> > > упаковку? Сложный вопрос - но уходит. Вообще, память не такая быстрая
> > > у PC, неудивительно что узкое место - здесь
> > >
> > Да не такой это и сложный вопрос, на самом деле. Достаточно просто ведь
> > все посчитать :-) Возьмем тот же пресловутый Pentium III на 1GHz. Шина у
> > него позволяет переслать 1.06Gb/sec - а если учесть, что мы все это
> Теоретически. Практически dd if=/dev/zero of=/dev/null (copyout/copyin
> в чистом виде) мне давал не более 180 mb/sec на обычных матерях и
> 250 mb/sec - на матерях с интерливом.
>
Хмм... Моя так не думает - он что-то явно другое считает:
-- cut --
# time dd if=/dev/zero of=/dev/null bs=1048576 count=1048576
1048576+0 входных записей
1048576+0 выходных записей
real 0m35.147s
user 0m1.530s
sys 0m33.620s
-- cut --
Может ты это имел в виду ?
-- cut --
$ time dd if=/dev/zero bs=1048576 count=1024 | dd of=/dev/null bs=1048576 count=1024
1024+0 входных записей
1024+0 выходных записей
1024+0 входных записей
1024+0 выходных записей
real 0m6.122s
user 0m0.040s
sys 0m6.080s
-- cut --
Да - здесь похоже на 180Mb/sec.
=============================================================================
= 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" 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.