From: Robert Klemme Date: 2009-09-30T15:30:09+09:00 Subject: Re: How do you determine CPU time in a Ruby program? On 09/29/2009 05:07 PM, Marvin Gülker wrote: > I think you're looking for the benchmark library (in Ruby's stdlib). To > quote from the docs: > (...) > This report shows the user CPU time, system CPU time, the sum of > the user and system CPU times, and the elapsed real time. The unit > of time is seconds. > (...) > require 'benchmark' > > n = 50000 > Benchmark.bm(7) do |x| > x.report("for:") { for i in 1..n; a = "1"; end } > x.report("times:") { n.times do ; a = "1"; end } > x.report("upto:") { 1.upto(n) do ; a = "1"; end } > end > > The result: > > user system total real > for: 1.050000 0.000000 1.050000 ( 0.503462) > times: 1.533333 0.016667 1.550000 ( 0.735473) > upto: 1.500000 0.016667 1.516667 ( 0.711239) > > Marvin There is also Benchmark.times (process times so far) and Benchmark.measure (timing of a particular operation): irb(main):019:0> Benchmark.times => # irb(main):020:0> Benchmark.measure { 10.times do end } => # irb(main):021:0> Benchmark.measure "foo" { 10.times do end } => # irb(main):022:0> Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/