D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby18
/
share
/
ri
/
1.8
/
system
/
Benchmark
/
Filename :
bmbm-i.yaml
back
Copy
--- !ruby/object:RI::MethodDescription aliases: [] block_params: job comment: - !ruby/struct:SM::Flow::P body: "Sometimes benchmark results are skewed because code executed earlier encounters different garbage collection overheads than that run later. #bmbm attempts to minimize this effect by running the tests twice, the first time as a rehearsal in order to get the runtime environment stable, the second time for real. <tt>GC.start</tt> is executed before the start of each of the real timings; the cost of this is not included in the timings. In reality, though, there's only so much that #bmbm can do, and the results are not guaranteed to be isolated from garbage collection and other effects." - !ruby/struct:SM::Flow::P body: "Because #bmbm takes two passes through the tests, it can calculate the required label width." - !ruby/struct:SM::Flow::VERB body: " require 'benchmark'\n\n array = (1..1000000).map { rand }\n\n Benchmark.bmbm do |x|\n x.report("sort!") { array.dup.sort! }\n x.report("sort") { array.dup.sort }\n end\n" - !ruby/struct:SM::Flow::P body: <em>Generates:</em> - !ruby/struct:SM::Flow::VERB body: " Rehearsal -----------------------------------------\n sort! 11.928000 0.010000 11.938000 ( 12.756000)\n sort 13.048000 0.020000 13.068000 ( 13.857000)\n ------------------------------- total: 25.006000sec\n\n user system total real\n sort! 12.959000 0.010000 12.969000 ( 13.793000)\n sort 12.007000 0.000000 12.007000 ( 12.791000)\n" - !ruby/struct:SM::Flow::P body: "#bmbm yields a Benchmark::Job object and returns an array of Benchmark::Tms objects." full_name: Benchmark#bmbm is_singleton: false name: bmbm params: (width = 0) {|job| ...} visibility: public