On Sun, 25 Jul 2004, Konstantin Sorokin wrote:
> On Sun, Jul 25, 2004 at 02:57:06PM +0400, Igor Sysoev wrote:
> >
> > Я не интересовался серьёзно использованием mysql под 5.x, но в 5.x есть не
> > только kse, но и libthr.
>
> Кстати, не так давно я тут проводил небольшой тест различных реализаций
> тредов на 5.2. Кому интересно:
>
> http://www.google.ru/groups?ie=UTF-8&as_umsgid=c7e15e%24qk8%241@xxxxxxxxxxxxxxxxx&lr=&hl=ru
Код, насколько я понимаю, измеряет скорость мутексов и условных переменных ?
У меня на 5.2.1 получились похожие соотношения цифр:
lkse:
real 0m35.415s
user 0m35.243s
sys 0m0.071s
lthr:
real 1m22.312s
user 0m29.850s
sys 0m52.298s
lc_r:
real 0m51.583s
user 0m51.168s
sys 0m0.165s
linuxthreads:
real 0m16.355s
user 0m6.561s
sys 0m1.712s
Всё тестировалось на однопроцессорной машине.
На 4.8 два последних результата того же порядка. Интересно, что linuxthreads
быстрее как минимум в два раза, несмотря на то, что для мутексов и
переменных используются сигналы с обработчиками сигналов. Непонятно,
почему lc_r настолько медленная.
У lthr огромное системное время. Возможно, это связано с реализацией
условных переменых с помощью сигнала SIGTHR, при работе с мутексами
много вызовов sigprocmask(). В марте-мае от сигнала отказались, возможно,
должно быть быстрее.
Игорь Сысоев
http://sysoev.ru