Episode 0.2 - Memoize
"A method that speeds methods up at the cost of memory" - Daniel J. Berger
| memoize on RAA | http://raa.ruby-lang.org/project/memoize/ |
| memoize @ Shards | http://rubyforge.org/projects/shards |
Example:
irb(main):001:0> def fib(n)
irb(main):002:1> return n if n < 2
irb(main):003:1> fib(n-1) + fib(n-2)
irb(main):004:1> end
nil
irb(main):005:0> fib 30
832040
irb(main):006:0> require 'memoize'
true
irb(main):007:0> include Memoize
Object
irb(main):008:0> require 'benchmark'
true
irb(main):009:0> try1 = Benchmark.measure { fib 30 }
<Benchmark::Tms:0x7fc86958 @total=2.312, @cstime=0.0,
@cutime=0.0, @label="", @stime=0.0, @real=2.3 @utime=2.312>
irb(main):010:0> memoize :fib
{}
irb(main):011:0> try2 = Benchmark.measure { fib 30 }
<Benchmark::Tms:0x7fc73e98 @total=0.0, @cstime=0.0,
@cutime=0.0, @label="", @stime=0.0, @real=0.0003, @utime=0.0>
Tags : memoize