2198
#hash(((def ((lib "profile/analyzer.rkt") struct:profile)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") edge-callee-time)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") edge-callee)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") profile-sample-number)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") edge)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") node-callers)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") node-total)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") profile-total-time)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") edge?)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") profile-thread-times)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") profile)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") node?)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") node-callees)) . ((1737 . 9))) ((def ((lib "profile/sampler.rkt") create-sampler)) . ((838 . 7))) ((def ((lib "profile/analyzer.rkt") node-self)) . ((1737 . 9))) ((def ((lib "profile/render-graphviz.rkt") render)) . ((2724 . 7))) ((def ((lib "profile/analyzer.rkt") node)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") profile-nodes)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") profile?)) . ((1216 . 14))) ((form ((lib "profile/main.rkt") profile)) . ((791 . 2))) ((def ((lib "profile/analyzer.rkt") node-id)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") node-thread-ids)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") struct:edge)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") edge-total)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") profile-*-node)) . ((1216 . 14))) ((def ((lib "profile/analyzer.rkt") analyze-samples)) . ((1127 . 3))) ((def ((lib "profile/analyzer.rkt") node-src)) . ((1737 . 9))) ((def ((lib "profile/render-text.rkt") render)) . ((2313 . 9))) ((def ((lib "profile/analyzer.rkt") edge-caller)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") struct:node)) . ((1737 . 9))) ((def ((lib "profile/analyzer.rkt") edge-caller-time)) . ((2069 . 7))) ((def ((lib "profile/analyzer.rkt") profile-cpu-time)) . ((1216 . 14))) ((def ((lib "profile/main.rkt") profile-thunk)) . ((0 . 15))))
procedure
(profile-thunk  thunk                                       
               [#:delay delay                               
                #:repeat iterations                         
                #:threads threads?                          
                #:render renderer                           
                #:periodic-renderer periodic-renderer]) -> void?
  thunk : (-> any/c)
  delay : (>=/c 0.0) = 0.05
  iterations : exact-nonnegative-integer? = 1
  threads? : any/c = #f
  renderer : (profile? . -> . any/c) = text:render
  periodic-renderer : (or/c #f (list/c (>=/c 0.0)
                                       (profile? . -> . any/c)))
                    = #f
syntax
(profile expr keyword-arguments ...)
procedure
(create-sampler to-track delay [super-cust])
 -> ((symbol?) (any/c) . ->* . any/c)
  to-track : (or/c thread? custodian?
                   (listof (or/c thread? custodian?)))
  delay : (>=/c 0.0)
  super-cust : custodian? = (current-custodian)
procedure
(analyze-samples raw-sample-data) -> profile?
  raw-sample-data : any/c
struct
(struct profile (total-time
                 cpu-time
                 sample-number
                 thread-times
                 nodes
                 *-node))
  total-time : exact-nonnegative-integer?
  cpu-time : exact-nonnegative-integer?
  sample-number : exact-nonnegative-integer?
  thread-times : (listof (cons exact-nonnegative-integer?
                               exact-nonnegative-integer?))
  nodes : (listof node?)
  *-node : node?
struct
(struct node (id src thread-ids total self callers callees))
  id : (or/c #f symbol?)
  src : (or/c #f srcloc?)
  thread-ids : (listof exact-nonnegative-integer?)
  total : exact-nonnegative-integer?
  self : exact-nonnegative-integer?
  callers : (listof edge?)
  callees : (listof edge?)
struct
(struct edge (total caller caller-time callee callee-time))
  total : exact-nonnegative-integer?
  caller : node?
  caller-time : exact-nonnegative-integer?
  callee : node?
  callee-time : exact-nonnegative-integer?
procedure
(render  profile-data                          
        [#:truncate-source truncate-source     
         #:hide-self hide-self%                
         #:hide-subs hide-subs%])          -> void?
  profile-data : profile?
  truncate-source : exact-nonnegative-integer? = 50
  hide-self% : (between/c 0 1) = 1/100
  hide-subs% : (between/c 0 1) = 1/50
procedure
(render  profile-data                 
        [#:hide-self hide-self%       
         #:hide-subs hide-subs%]) -> void?
  profile-data : profile?
  hide-self% : (between/c 0 1) = 1/100
  hide-subs% : (between/c 0 1) = 1/50
