From: Daniel Berger Date: 2006-01-03T04:32:57+09:00 Subject: Re: Memoization, files and Marshal? ara.t.howard@noaa.gov wrote: > This message is in MIME format. The first part should be readable text, > while the remaining parts are likely unreadable without MIME-aware tools. > > On Mon, 2 Jan 2006, Mauricio Fernandez wrote: > > > > > Dumping the cache on every miss seems expensive. > > I changed the code to save it once every N misses, and made the cache update > > atomic to prevent problems with: > > * concurrent executions of the memoized method (processes and threads) > > * no HD space being left (the previous cache state is preserved) > > > > I also applied those changes to memoize.rb 1.2.0 and generalized it to work > > with instance methods, see the patch after memo.rb. > > nice idea. Looks interesting but I get this with windows xp using his sample code: >ruby memoize.rb Rehearsal ---------------------------------------------- period 1 memoize.rb:39:in `has_key?': stack level too deep (SystemStackError) from memoize.rb:39:in `fib' from memoize.rb:56:in `fib' from memoize.rb:40:in `fib' from memoize.rb:56:in `fib' from memoize.rb:40:in `fib' from memoize.rb:56:in `fib' from memoize.rb:40:in `fib' from memoize.rb:56:in `fib' ... 539 levels... from c:/ruby184/lib/ruby/1.8/benchmark.rb:293:in `measure' from c:/ruby184/lib/ruby/1.8/benchmark.rb:261:in `bmbm' from c:/ruby184/lib/ruby/1.8/benchmark.rb:259:in `bmbm' from memoize.rb:97 Regards, Dan