racket/collects/mztake/demos/sprofiler/sprofiler-mztake.ss
Greg Cooper 1a70f40e4f minor bug fix
svn: r3328
2006-06-11 18:06:52 +00:00

25 lines
729 B
Scheme

(require (lib "mztake.ss" "mztake" )
(lib "match.ss")
(lib "base-gm.ss" "frtime"))
(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 (show-profile)
(sort (hash-pairs pings) (lambda (a b) (> (second a) (second b)))))