mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* benchmark/bm_vm1_gc_short_lived.rb: added.
These GC benchmarks do not reflect practical applications. They are only for tuning. * benchmark/bm_vm1_gc_short_with_complex_long.rb: added. * benchmark/bm_vm1_gc_short_with_long.rb: added. * benchmark/bm_vm1_gc_short_with_symbol.rb: added. * benchmark/bm_vm1_gc_wb_ary.rb: added. * benchmark/bm_vm1_gc_wb_obj.rb: added. * benchmark/bm_vm_thread_queue.rb: added. Thie benchmark is added to know how fast C verion of thread.so. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3db0e56472
commit
df6722d9fc
8 changed files with 125 additions and 0 deletions
19
ChangeLog
19
ChangeLog
|
@ -1,3 +1,22 @@
|
||||||
|
Wed Nov 6 09:14:31 2013 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_short_lived.rb: added.
|
||||||
|
These GC benchmarks do not reflect practical applications.
|
||||||
|
They are only for tuning.
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_short_with_complex_long.rb: added.
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_short_with_long.rb: added.
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_short_with_symbol.rb: added.
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_wb_ary.rb: added.
|
||||||
|
|
||||||
|
* benchmark/bm_vm1_gc_wb_obj.rb: added.
|
||||||
|
|
||||||
|
* benchmark/bm_vm_thread_queue.rb: added.
|
||||||
|
Thie benchmark is added to know how fast C verion of thread.so.
|
||||||
|
|
||||||
Wed Nov 6 09:13:32 2013 Koichi Sasada <ko1@atdot.net>
|
Wed Nov 6 09:13:32 2013 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
* gc.c: define RGENGC_ESTIMATE_OLDSPACE == 0 if USE_RGENGC is 0.
|
* gc.c: define RGENGC_ESTIMATE_OLDSPACE == 0 if USE_RGENGC is 0.
|
||||||
|
|
10
benchmark/bm_vm1_gc_short_lived.rb
Normal file
10
benchmark/bm_vm1_gc_short_lived.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
i = 0
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
a = '' # short-lived String
|
||||||
|
b = ''
|
||||||
|
c = ''
|
||||||
|
d = ''
|
||||||
|
e = ''
|
||||||
|
f = ''
|
||||||
|
i+=1
|
||||||
|
end
|
27
benchmark/bm_vm1_gc_short_with_complex_long.rb
Normal file
27
benchmark/bm_vm1_gc_short_with_complex_long.rb
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
def nested_hash h, n
|
||||||
|
if n == 0
|
||||||
|
''
|
||||||
|
else
|
||||||
|
10.times{
|
||||||
|
h[Object.new] = nested_hash(h, n-1)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
long_lived = Hash.new
|
||||||
|
nested_hash long_lived, 6
|
||||||
|
|
||||||
|
GC.start
|
||||||
|
GC.start
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
a = '' # short-lived String
|
||||||
|
b = ''
|
||||||
|
c = ''
|
||||||
|
d = ''
|
||||||
|
e = ''
|
||||||
|
f = ''
|
||||||
|
i+=1
|
||||||
|
end
|
||||||
|
|
13
benchmark/bm_vm1_gc_short_with_long.rb
Normal file
13
benchmark/bm_vm1_gc_short_with_long.rb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
long_lived = Array.new(1_000_000){|i| "#{i}"}
|
||||||
|
GC.start
|
||||||
|
GC.start
|
||||||
|
i = 0
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
a = '' # short-lived String
|
||||||
|
b = ''
|
||||||
|
c = ''
|
||||||
|
d = ''
|
||||||
|
e = ''
|
||||||
|
f = ''
|
||||||
|
i+=1
|
||||||
|
end
|
15
benchmark/bm_vm1_gc_short_with_symbol.rb
Normal file
15
benchmark/bm_vm1_gc_short_with_symbol.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
# make many symbols
|
||||||
|
50_000.times{|i| sym = "sym#{i}".to_sym}
|
||||||
|
GC.start
|
||||||
|
GC.start
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
a = '' # short-lived String
|
||||||
|
b = ''
|
||||||
|
c = ''
|
||||||
|
d = ''
|
||||||
|
e = ''
|
||||||
|
f = ''
|
||||||
|
i+=1
|
||||||
|
end
|
10
benchmark/bm_vm1_gc_wb_ary.rb
Normal file
10
benchmark/bm_vm1_gc_wb_ary.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
long_lived = []
|
||||||
|
GC.start
|
||||||
|
GC.start
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
short_lived = ''
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
long_lived[0] = short_lived # write barrier
|
||||||
|
i+=1
|
||||||
|
end
|
13
benchmark/bm_vm1_gc_wb_obj.rb
Normal file
13
benchmark/bm_vm1_gc_wb_obj.rb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
class C
|
||||||
|
attr_accessor :foo
|
||||||
|
end
|
||||||
|
long_lived = C.new
|
||||||
|
GC.start
|
||||||
|
GC.start
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
short_lived = ''
|
||||||
|
while i<30_000_000 # while loop 1
|
||||||
|
long_lived.foo = short_lived # write barrier
|
||||||
|
i+=1
|
||||||
|
end
|
18
benchmark/bm_vm_thread_queue.rb
Normal file
18
benchmark/bm_vm_thread_queue.rb
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
require 'thread'
|
||||||
|
|
||||||
|
n = 1_000_000
|
||||||
|
q = Queue.new
|
||||||
|
consumer = Thread.new{
|
||||||
|
while q.pop
|
||||||
|
# consuming
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
producer = Thread.new{
|
||||||
|
n.times{
|
||||||
|
q.push true
|
||||||
|
}
|
||||||
|
q.push nil
|
||||||
|
}
|
||||||
|
|
||||||
|
consumer.join
|
Loading…
Add table
Add a link
Reference in a new issue