Tools for profiling OCaml code

2019-04-04 01:55发布

问题:

Is anybody aware of programs for profiling OCaml code apart from using the -p option while compilation and then using gprof? I am asking this question in order to check if the sampling time of 0.01 second can be lowered further?

回答1:

poorman's profiler is perfectly applicable for OCaml programs. The same idea works out for profiling allocations as well.



回答2:

Never used it but ocamlviz is another option.



回答3:

You can also use ocaml-memprof, a compiler patch (3.12.0 and 3.12 1) written by Fabrice Le Fessant, that adds memory profiling features to ocaml programs.

EDIT

Now you have ocp-memprof, an OCaml Memory Profiler that you can use online. It is available on http://memprof.typerex.org.



回答4:

Adding to the list of useful answers: this OCamlPro post mentions performance profiling (not memory profiling) of native code on Linux using perf (installed via package linux-tools in Debian-like distributions).

Basically, you just need to run:

perf record -g ./native_program arguments

To produce a perf.data file containing profiling data, and then run

perf report -g

To see the results.

It works better when using an OCaml release with frame pointers enabled (e.g. 4.02.1+fp instead of 4.02.1 on OPAM).