diff options
Diffstat (limited to 'library')
| -rw-r--r-- | library/library.ml | 10 | ||||
| -rw-r--r-- | library/library.mli | 4 |
2 files changed, 14 insertions, 0 deletions
diff --git a/library/library.ml b/library/library.ml index 6ff8a84db1..b0c1a2ecd0 100644 --- a/library/library.ml +++ b/library/library.ml @@ -249,3 +249,13 @@ let fmt_modules_state () = prlist_with_sep pr_spc (fun s -> [< 'sTR s >]) opened ; 'fNL ; 'sTR "Loaded Modules: " ; prlist_with_sep pr_spc (fun s -> [< 'sTR s >]) loaded ; 'fNL >] + +(*s Display the memory use of a module. *) + +open Printf + +let mem s = + let m = find_module s in + h 0 [< 'sTR (sprintf "%dk (cenv = %dk / seg = %dk / nmt = %dk)" + (size_kb m) (size_kb m.module_compiled_env) + (size_kb m.module_declarations) (size_kb m.module_nametab)) >] diff --git a/library/library.mli b/library/library.mli index 18ebb97088..43fa04e8bf 100644 --- a/library/library.mli +++ b/library/library.mli @@ -59,3 +59,7 @@ val iter_all_segments : bool -> (section_path -> obj -> unit) -> unit val get_load_path : unit -> System.load_path val add_load_path_entry : System.load_path_entry -> unit val remove_path : string -> unit + +(*s Displays the memory use of a module. *) + +val mem : string -> Pp.std_ppcmds |
