Chris Shea wrote:
> On Mar 20, 10:18 am, Jason Lillywhite <jason.lillywh... / gmail.com>
> 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