caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Mark Shinwell <mark@three-tuns.net>
To: caml-list@yquem.inria.fr
Subject: [Caml-list] enhancements for "perf" on OCaml code
Date: Fri, 12 Jul 2013 14:46:50 +0100	[thread overview]
Message-ID: <20130712134650.GG15268@three-tuns.net> (raw)

Linux has a tool called "perf" that enables the display of source code
alongside time profiling information and the corresponding assembly code.
(See https://perf.wiki.kernel.org/index.php/Tutorial, "perf annotate").

I am pleased to announce an alpha version of the OCaml native code compiler
that permits perf to do the same for OCaml code.  This compiler works only on
x86-64 Linux, although porting it to other Linux targets should be
straightforward.

The compiler is available in OPAM.  If you add the remote repository
git://github.com/mshinwell/opam-repo-dev then you should be able to
"opam switch" to the 4.01-perf-annotate compiler.  Please let me have any
reports of problems.

After compilation, you can run "perf record" to gather data about your
OCaml program, and then use "perf report" to interactively examine it.
If you hit Return on a function, then you should be given the option to
annotate it, and then you should see the OCaml code as above.  Note that
line number information is not yet as fine-grained for OCaml as it might
be for C code.

You need to have the source files available at the same location on the
filesystem when you run "perf report" as you did when you compiled the
program.

This work forms part of a larger project in collaboration with OCaml Labs
at Cambridge, UK, to enhance the level of debugging information emitted
by the OCaml compiler.  The perf-annotate compiler emits debugging sections
that aim to be compliant with the DWARF-2 standard.

Mark

P.S. The eagle-eyed of you will notice that there is another compiler,
4.01-allocation-profiling, also available in that OPAM repo.  This provides
allocation profiling capabilities for native code, documentation for which I
will endeavour to circulate to the list shortly.

             reply	other threads:[~2013-07-12 13:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-12 13:46 Mark Shinwell [this message]
2013-07-12 14:35 ` Maxime Dénès
2013-07-12 15:41   ` Mark Shinwell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130712134650.GG15268@three-tuns.net \
    --to=mark@three-tuns.net \
    --cc=caml-list@yquem.inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).