[racket-dev] [racket] Profiling mostly macro-generated definitions?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Aug 31 08:05:14 EDT 2012

>> I believe I'm using the 32 bit build in all those cases, tho. Are you
>> using the 64 bit one?
>
> Yes.


Thanks. I see this too. Here's a shorter program illustrating the difference.

#lang racket
(require profile)

(define (f x)
  (if (zero? x)
      (continuation-mark-set->context
       (current-continuation-marks))
      (values (f (- x 1)))))

(unless (zero? (random 1))
  (set! f void))

(f 10)


Running this with a 64bit racket under windows returns the empty list,
but with a 32bit racket under windows returns a list of a bunch of
stuff:

C:\Users\robby\git\plt>Racket.exe C:\Users\robby\tmp.rkt
(list (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
(cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 3
3 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
(cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0
 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33 133))
(cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4
 0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt>
 4 0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rk
t> 4 0 33 133)) (cons 'f (srcloc #<path:C:\Users\robby\tmp.rkt> 4 0 33
133)) (cons '|[running body]| (srcloc #<path:C:\U
sers\robby\tmp.rkt> #f #f #f #f)))

Posted on the dev mailing list.