例えば memoize しながらフィボナッチ数列を求める場合。 class Fibonacci def initialize @memo = [0, 1] end def fibonacci(n) @memo[n] || @memo[n] = fibonacci(n - 2) + fibonacci(n - 1) @memo[n] # この行は省略しても結果は同じ end end fib = Fibonacci.new 10000.times { |n| fib.fibonacci(n) } これで何が嬉しいのかというと、プロファイリングしてみるとこんな結果が現れます。 fibonacci メソッドの最後の行を省略しなかった場合 $ time ruby -rprofile fibonacci.rb % cumulative self self total time seconds seco
