* benchmark/bm_vm4_pipe.rb: Add two new benchmark for GVL

performance. They was written by Koichi Sasada.
* benchmark/bm_vm4_thread_pass.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kosaki 2011-04-29 01:44:32 +00:00
Родитель e4ba4b79b6
Коммит 3c24bc37a0
3 изменённых файлов: 38 добавлений и 0 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Fri Apr 29 10:43:09 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* benchmark/bm_vm4_pipe.rb: Add two new benchmark for GVL
performance. They was written by Koichi Sasada.
* benchmark/bm_vm4_thread_pass.rb: ditto.
Fri Apr 29 10:25:31 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* vm_method.c (rb_clear_cache_by_class): Revert r29673. It made

17
benchmark/bm_vm4_pipe.rb Normal file
Просмотреть файл

@ -0,0 +1,17 @@
# Mesure small and plenty pipe read/write.
# A performance may depend on GVL implementation.
lmax = 1_000_000
r, w = IO.pipe
[Thread.new{
lmax.times{
w.write('a')
}
p "w:exit"
}, Thread.new{
lmax.times{
r.read(1)
}
p "r:exit"
}].each{|t| t.join}

Просмотреть файл

@ -0,0 +1,15 @@
# Plenty Thtread.pass
# A performance may depend on GVL implementation.
tmax = (ARGV.shift || 2).to_i
lmax = 2_000_000 / tmax
(1..tmax).map{
Thread.new{
lmax.times{
Thread.pass
}
}
}.each{|t| t.join}