зеркало из https://github.com/github/ruby.git
* 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:
Родитель
e4ba4b79b6
Коммит
3c24bc37a0
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
||||
|
Загрузка…
Ссылка в новой задаче