diff options
Diffstat (limited to 'benchmark/gc/gcbench.rb')
-rw-r--r-- | benchmark/gc/gcbench.rb | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/benchmark/gc/gcbench.rb b/benchmark/gc/gcbench.rb index a7aef48986..16d728a150 100644 --- a/benchmark/gc/gcbench.rb +++ b/benchmark/gc/gcbench.rb @@ -1,6 +1,14 @@ - require 'benchmark' require 'pp' +require 'optparse' + +$list = true +$gcprof = true + +opt = OptionParser.new +opt.on('-q'){$list = false} +opt.on('-d'){$gcprof = fales} +opt.parse!(ARGV) script = File.join(File.dirname(__FILE__), ARGV.shift) script += '.rb' unless FileTest.exist?(script) @@ -8,15 +16,23 @@ raise "#{script} not found" unless FileTest.exist?(script) puts "Script: #{script}" -GC::Profiler.enable +if $gcprof + GC::Profiler.enable +end + tms = Benchmark.measure{|x| load script } -gc_time = GC::Profiler.total_time -GC::Profiler.report if RUBY_VERSION >= '2.0.0' # before 1.9.3, report() may run infinite loop -GC::Profiler.disable -pp GC.stat +gc_time = 0 + +if $gcprof + gc_time = GC::Profiler.total_time + GC::Profiler.report if $list and RUBY_VERSION >= '2.0.0' # before 1.9.3, report() may run infinite loop + GC::Profiler.disable +end + +pp GC.stat desc = "#{RUBY_VERSION}#{RUBY_PATCHLEVEL >= 0 ? "p#{RUBY_PATCHLEVEL}" : "dev"}" name = File.basename(script, '.rb') |