From: Joel VanderWerf Date: 2009-03-21T07:59:07+09:00 Subject: Re: display computation time in IRB Chris Shea wrote: > On Mar 20, 10:18 am, Jason Lillywhite > wrote: >> Is there an easy way to display the time it takes to compute any >> function from within IRB? >> -- >> Posted viahttp://www.ruby-forum.com/. > > It's not unheard of for people to add something like this to their > irbrc: > > def time > start = Time.now > result = yield > puts "Completed in #{Time.now - start} seconds." > result > end > > In use: > > 016:0> time { ('a'*10_000_000).sub(/a+/,'hi') } > Completed in 0.446504 seconds. > "hi" > > HTH, > Chris > Or something like this: irb(main):005:0> def time irb(main):006:1> start = Process.times.inject{|s,x|s+x} irb(main):007:1> result = yield irb(main):008:1> finish = Process.times.inject{|s,x|s+x} irb(main):009:1> puts "Completed in #{finish - start} cpu seconds" irb(main):010:1> result irb(main):011:1> end => nil irb(main):012:0> time {sleep 1} Completed in 0.0 cpu seconds => 1 irb(main):013:0> time {1000000.times {1.23**42}} Completed in 0.57 cpu seconds => 1000000 -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407