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

Download (5.96 MB, 2:38)
Alternative download for iPod and iPhone (4.07 MB, 2:38)
  • preview
  • preview
  • preview
  • preview
Powered by Olark