package memtrace_viewer
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Interactive memory profiler based on Memtrace
Install
dune-project
Dependency
Authors
Maintainers
Sources
v0.17.0.tar.gz
sha256=0d9b7ddf94f9cf090930a36468abd4f4ca40c5618ec02dbbc6fd47fb0572433d
doc/src/memtrace_viewer.client/location.ml.html
Source file location.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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50open! Core open Bonsai_web open Memtrace_viewer_common let allocation_site_indicator = let open Vdom in Node.span ~attrs:[ Attr.class_ "loc-alloc-site-indicator"; Attr.title "Allocation site" ] [ Node.text "A" ] ;; let format_dom ~call_sites loc = let open Vdom in let defname = Data.Location.defname loc in let call_sites = call_sites |> Option.value ~default:[] in let special text = Node.span ~attrs:[ Attr.classes [ "loc"; "loc-special" ] ] [ Node.text text ] in match loc with | Allocation_site alloc_site -> let filename = Data.Allocation_site.filename alloc_site in let position = Data.Allocation_site.position alloc_site in Node.span ~attrs:[ Attr.class_ "loc" ] [ allocation_site_indicator ; Node.textf "%s " defname ; Node.span ~attrs:[ Attr.class_ "call-sites" ] [ Node.textf "(%s:%s)" filename position ] ] | Function _ -> if List.is_empty call_sites then Node.span ~attrs:[ Attr.class_ "loc" ] [ Node.text defname ] else ( let filename = Data.Call_site.filename (List.hd_exn call_sites) in let positions = List.map call_sites ~f:(fun call_site -> Node.span [ Node.text (Data.Call_site.position call_site) ]) |> List.intersperse ~sep:(Node.text ", ") in let call_sites = Node.span ~attrs:[ Attr.class_ "call-sites" ] (List.concat [ [ Node.textf "(%s:" filename ]; positions; [ Node.text ")" ] ]) in Node.span ~attrs:[ Attr.class_ "loc" ] [ Node.textf "%s " defname; call_sites ]) | Allocator -> special "Allocation sites" | Toplevel -> special "OCaml toplevel" | Dummy -> special "(none)" ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>