Ключевые слова:thread, freebsd, benchmark, mysql, (найти похожие документы)
Date: Sun, 25 Jul 2004 21:36:10 +0400 (MSD)
Subject: Сравнение реализации тредов в FreeBSD 4.x/5.x
From: Konstantin Sorokin <spamtrap@pluto.sectorb.msk.ru.>
Небольшой тест:
kvs@:> gcc -Wall -W aqueue.c -o aqueue -lthr
kvs@:> time ./aqueue -n 10000000
pusher started
poper started
real 2m3.593s
user 0m46.042s
sys 1m16.701s
kvs@:> gcc -Wall -W aqueue.c -o aqueue -lkse
kvs@:> time ./aqueue -n 10000000
pusher started
poper started
real 0m54.389s
user 0m53.679s
sys 0m0.251s
kvs@:> gcc -Wall -W aqueue.c -o aqueue -pthread
kvs@:> time ./aqueue -n 10000000
pusher started
poper started
real 1m17.322s
user 1m16.334s
sys 0m0.477s
Это на FreeBSD 5.2
source: http://kvs.myxomop.com/aqueue.c.txt
From: Igor Sysoev <is at rambler-co.ru>
>> Я не интересовался серьёзно использованием mysql под 5.x, но в 5.x есть не
>> только kse, но и libthr.
>
> Кстати, не так давно я тут проводил небольшой тест различных реализаций
> тредов на 5.2. Кому интересно:
>
> http://www.google.ru/groups?as_umsgid=c7e15e%24qk8%241@zond.corp.mail.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(). В марте-мае от сигнала отказались, возможно,
должно быть быстрее.
From: Konstantin Sorokin <kvs@pluto.sectorb.msk.ru.>
SMP 4.9-RELEASE-p1
linuxthreads::
real 0m24.847s
user 0m9.292s
sys 0m1.681s
lc_r:
real 1m25.883s
user 1m13.864s
sys 0m0.744s
Интересно было бы еще взглянуть на результаты на SMP 5.*, но у
меня такой нет под рукой.