racket/collects/mztake/demos/sprofiler/sprofiler-mztake.ss
Greg Cooper e4f5ed700b fixed sprofiler demo
worked around problem where some syntax objects were getting unwrapped
  (e.g., require)

svn: r3742
2006-07-17 16:23:00 +00:00

29 lines
843 B
Scheme

(require (lib "mztake.ss" "mztake" )
(lib "match.ss")
(lib "base-gm.ss" "frtime")
(only mzscheme hash-table-map))
(set-main! "picture.ss")
(define (hash-table-increment! h k)
(let ([old (hash-get h k (lambda () 0))])
(hash-put! h k (add1 old))))
(define pings (make-hash 'equal))
(for-each-e! (where)
(match-lambda [(line function context rest ...)
(hash-table-increment! pings (list function context))]
[_ (void)]))
(define clicks (changes (quotient milliseconds 50)))
(set-running-e! (merge-e (clicks . -=> . false)
(clicks . -=> . true)))
(define (hash-pairs ht)
(hash-table-map ht (lambda (k v) (list k v))))
(define (show-profile)
(sort (hash-pairs pings) (lambda (a b) (> (second a) (second b)))))