On 09/29/2009 05:07 PM, Marvin Gker 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 unitof 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 => #<struct Struct::Tms utime=0.11, stime=0.06, cutime=0.0, cstime=0.0> irb(main):020:0> Benchmark.measure { 10.times do end } => #<Benchmark::Tms:0x91f53c0 @label="", @real=1.02519989013672e-05, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=0.0, @total=0.0> irb(main):021:0> Benchmark.measure "foo" { 10.times do end } => #<Benchmark::Tms:0x91e5650 @label="foo", @real=1.00135803222656e-05, @cstime=0.0, @cutime=0.0, @stime=0.0, @utime=0.0, @total=0.0> irb(main):022:0> Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/