“Perf” is a common command line linux tool used for code profiling, (perf wiki). A alpha version of a OCaml native code compiler that output code, that can be analysis by perf is now avalaible in OPAM
Installing the perf compatible OCaml compiler is straight forward with OPAM, though quite time-consuming due to the need to re-install many packages
$ opam remote add perf git://github.com/mshinwell/opam-repo-dev $ opam switch 4.01-perf-annotate $ eval `opam config env` $ opam install
Installing perf was also straight forward, in fact I already had it via the linux-tools package in apt-get for Ubuntu.
sudo apt-get install linux-tools
Compiling with the new perf-compatable Ocaml compiler was beautifully simple, running make within an existing project working first time without any further changes necessary.
Basic reporting is collected and viewed using:
sudo perf record ./myprogram.native -o myreport.data sudo perf report -i myreport.data sudo perf script -i myreport.data
Similarly basic stats can be collected using:
sudo perf stat ./myprogram.native -o myreport.data sudo cat myreport.data
When finished you can switch back to your normal compiler version, i.e.
$ opam switch 4.00.1 $ eval `opam config env`