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/