Profiling JIT compiled code on Linux

Hey folks,

I’m at a point with jank where I’m comparing benchmarks against Clojure. I’d very much like to profile these benchmarks to figure out where the time is being spent, but all of my attempts thus far have resulted in mostly [unknown] frames, rather than anything discernible.

Non-JIT compiled jank frames show up fine, but what I’m looking to profile is largely JIT compiled. So far, I’ve tried:

  • Tracy
  • Perf + flamegraph
  • Callgrind

I’m compiling with -O1 -ggdb3. If there are any tricks for getting more info in these profiling reports, or if there are different tools you guys are using for root, please do let me know.

Example flamegraph:
perf

Cling: 0.9 release
OS: Arch

Kind regards,
Jeaye

Hi @jeaye ,

support for cling+perf has been recently added to ROOT’s master branch see Add support for profiling/debugging interpreted/JITted code · root-project/root@22b1606 · GitHub (and the related Re-enable support for profiling/debugging interpreted/JITted code · root-project/root@8639737 · GitHub ).

Cheers,
Enrico

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.