[ANN] First Public Release (beta) of the Memthol memory profiling visualizer

Hi all,

We are happy to announce the first public release of Memthol, a visualizer and analyzer for memory profiling data generated from OCaml programs, thanks to the work of Adrien Champion and Vincent Laviron.

Memthol is a visualizer and analyzer for program profiling. It works on memory dumps containing information about the size and (de)allocation date of part of the allocations performed by some execution of a program. For information regarding building memthol, features, browser compatibility… refer to the memthol github repository.
Please note that Memthol, as a side project, is a work in progress that remains in beta status for now.

Memthol’s background

The Memthol work was started more than a year ago (we had published a short introductory paper at the JFLA2020). The whole idea was to use the previous work originally achieved on ocp-memprof, and look for some extra funding to achieve a usable and industrial version. Then came the excellent memtrace profiler by Jane Street’s team.

The memtrace format is nicely designed and polished enough to be considered a future standard for other tools. This is why Memthol supports Jane Street’s dumper format, instead of our own dumper library’s.

Memthol is a self-funded side project, that we think is worth giving to the OCaml community. Its approach is valuable, and can be complementary. It is released under the free GPL licence v3.

We welcome any extra funding to achieve a usable and industrial version!

Memthol’s features:

  • multi-client: open several tabs in your browser for the same profiling session to visualize the data separately
  • self-contained: the BUI packs all its static assets, once you have the binary you do not need anything else (except a browser)
  • data-splitting: plot several families of data separately in the same chart by separating them based on size, allocation lifetime, source locations in the allocation callstack, etc.

Issues are welcome. As Memthol is mostly tested on the Chrome web browser, you might experience problems with other browsers. Do not hesitate open issues.

We have designed a mini-tutorial on Memthol available on our github repository and our blogpost, which you can find by following this link : https://www.ocamlpro.com/2020/12/01/memthol-exploring-program-profiling/