diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-19 22:33:02 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-06-19 22:33:02 +0000 |
commit | 57bb153456513d727f388bc4e6d9811dc1b4c79b (patch) | |
tree | c851233f4fbee1c7ffb62a220bac05cf15136584 /tool | |
parent | 55ae2402f40c428307a1ac1e8a9f2800a4a2f1bf (diff) | |
download | ruby-57bb153456513d727f388bc4e6d9811dc1b4c79b.tar.gz |
* common.mk: add new rules `gcbench-rdoc', `gcbench-hash'.
* tool/gcbench.rb: separate GC bench framework and process.
* tool/hashbench1.rb, tool/hashbench2.rb: add two types GC bench.
hashbench1: many temporal objects (GC by newobj)
hashbench2: hash size becomes bigger and bigger (GC by malloc)
Two benchs are executed by `gcbench-hash' rule.
* tool/rdocbench.rb: separated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rw-r--r-- | tool/gcbench.rb | 24 | ||||
-rw-r--r-- | tool/hashbench1.rb | 11 | ||||
-rw-r--r-- | tool/hashbench2.rb | 7 | ||||
-rw-r--r-- | tool/rdocbench.rb | 21 |
4 files changed, 44 insertions, 19 deletions
diff --git a/tool/gcbench.rb b/tool/gcbench.rb new file mode 100644 index 0000000000..e16cb9ddce --- /dev/null +++ b/tool/gcbench.rb @@ -0,0 +1,24 @@ + +require 'benchmark' +require 'pp' + +script = ARGV.shift || raise + +GC::Profiler.enable +tms = Benchmark.measure{|x| + load script +} +GC::Profiler.report +pp GC.stat + +gc_time = GC::Profiler.total_time + +puts +puts Benchmark::CAPTION +puts tms +puts "GC total time (sec): #{gc_time}" +puts +puts "Summary (ruby): #{RUBY_DESCRIPTION} (#{script})" +puts "Summary (real): #{tms.real} sec" +puts "Summary (gctm): #{gc_time} sec" +puts "Summary (gc#) : #{GC.count}" diff --git a/tool/hashbench1.rb b/tool/hashbench1.rb new file mode 100644 index 0000000000..3e8b0dd95e --- /dev/null +++ b/tool/hashbench1.rb @@ -0,0 +1,11 @@ +value = 0.01 +h = {} +n = 100_000 + +1.upto(n){|i| + h["%020d" % i] = value * i +} + +(n * 500).times{ + '' +} diff --git a/tool/hashbench2.rb b/tool/hashbench2.rb new file mode 100644 index 0000000000..e8c943fb21 --- /dev/null +++ b/tool/hashbench2.rb @@ -0,0 +1,7 @@ +value = 0.01 +h = {} +n = 4*(10**6) + +1.upto(n){|i| + h["%020d" % i] = value * i +} diff --git a/tool/rdocbench.rb b/tool/rdocbench.rb index f325f6a187..a248b9a9b7 100644 --- a/tool/rdocbench.rb +++ b/tool/rdocbench.rb @@ -1,28 +1,11 @@ - require 'rdoc/rdoc' require 'tmpdir' -require 'benchmark' -require 'pp' Dir.mktmpdir('rdocbench-'){|d| dir = File.join(d, 'rdocbench') args = ARGV.dup args << '--op' << dir - GC::Profiler.enable - tms = Benchmark.measure{|x| - r = RDoc::RDoc.new - r.document args - } - GC::Profiler.report - pp GC.stat - puts - puts Benchmark::CAPTION - puts tms - puts "GC total time (sec): #{GC::Profiler.total_time}" - puts - puts "Summary (ruby): #{RUBY_DESCRIPTION})" - puts "Summary (real): #{tms.real} sec" - puts "Summary (gctm): #{GC::Profiler.total_time} sec" - puts "Summary (gc#) : #{GC.count}" + r = RDoc::RDoc.new + r.document args } |