1signature Profile =
2sig
3
4type call_info = {usr : Time.time, sys : Time.time, gc : Time.time, real : Time.time, n : int}
5
6val profile : string -> ('a -> 'b) -> 'a -> 'b
7val profile_with_exn : string -> ('a -> 'b) -> 'a -> 'b
8val profile_with_exn_name : string -> ('a -> 'b) -> 'a -> 'b
9val profile_no_exn : string -> ('a -> 'b) -> 'a -> 'b
10
11val reset1 : string -> unit
12val reset_all : unit -> unit
13
14val results : unit -> (string * call_info) list
15
16val print_profile_result  : (string * call_info) -> unit
17val print_profile_results : (string * call_info) list -> unit
18
19val output_profile_result : TextIO.outstream -> string * call_info -> unit
20val output_profile_results : TextIO.outstream -> (string * call_info) list ->
21                             unit
22
23end
24