package incr_dom

  1. Overview
  2. Docs

Source file javascript_profiling.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
external js_prof_mark : string -> unit = "js_prof_mark"
external js_prof_measure : string -> string -> string -> unit = "js_prof_measure"
external js_prof_clear_marks : unit -> unit = "js_prof_clear_marks"
external js_prof_clear_measures : unit -> unit = "js_prof_clear_measures"

let mark name = js_prof_mark name
let measure ~name ~start ~end_ = js_prof_measure name start end_

let record name ~f =
  let before_name = name ^ "_before" in
  let after_name = name ^ "_after" in
  let () = mark before_name in
  let res = f () in
  let () = mark after_name in
  measure ~name ~start:before_name ~end_:after_name;
  res
;;

let clear_marks () = js_prof_clear_marks ()
let clear_measures () = js_prof_clear_measures ()

module Manual = struct
  let mark = mark
  let measure = measure
end
OCaml

Innovation. Community. Security.