package incr_dom
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 26 27 28 29 30 31 32 33 34 35 36open Js_of_ocaml class type performance = object method mark : Js.js_string Js.t -> unit Js.meth method measure : Js.js_string Js.t -> Js.js_string Js.t -> Js.js_string Js.t -> unit Js.meth method clearMarks : unit Js.meth method clearMeasures : unit Js.meth end let perf () : performance Js.t = Js.Unsafe.global##.performance let mark name = (perf ())##mark (Js.string name) let measure ~name ~start ~end_ = (perf ())##measure (Js.string name) (Js.string start) (Js.string 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 () = (perf ())##clearMarks let clear_measures () = (perf ())##clearMeasures module Manual = struct let mark = mark let measure = measure end