[plt-scheme] Unexpected slowdown using memoized function
Hi folks,
I added memoization to a function and expected the code to run faster,
but it didn't. Why was I wrong to expect it to speed up?
Here are the programs version 381 and 383
#|
$LastChangedDate: 2007-08-11 22:20:12 -0500 (Sat, 11 Aug 2007) $
$LastChangedRevision: 381 $
$HeadURL: svn://osiris/prime_bits/trunk/prime_bits.ss $
|#
(module prime_bits mzscheme
(require (lib "60.ss" "srfi"))
(require (planet "math.ss" ("soegaard" "math.plt" 1 0)))
(provide (all-defined))
(define (prime_bits a b)
(let loop ([a a] [count 0])
(if (> a b) count
(loop (add1 a) (if (P a) (add1 count) count)))))
(define (P x)
(prime? (bit-count x))))
#|
$LastChangedDate: 2007-08-11 22:24:36 -0500 (Sat, 11 Aug 2007) $
$LastChangedRevision: 383 $
$HeadURL: svn://osiris/prime_bits/trunk/prime_bits.ss $
|#
;;; ONLY CHANGE
(define/memo (P x)
(prime? (bit-count x))))
381 took 23 seconds
383 took 39 seconds