[lldb-dev] LLDB nightly benchmarks and flamegraphs

Raphael Isemann via lldb-dev lldb-dev at lists.llvm.org
Fri Aug 3 15:36:19 PDT 2018

Hi everyone,

I wanted to share a (hopefully useful) service for LLDB that I added recently:

If you go to https://teemperor.de/lldb-bench/ you'll now see graphs
that show the instruction count and memory usage of the last LLDB
nightlies (one per day). If you click on a graph you'll see a flame
graph that shows how much time we spent in each function when running
the benchmark. The graph should make it pretty obvious where the good
places for optimizations are.

You can see all graphs without the slide show under

The source code of every benchmark can be found here:
https://github.com/Teemperor/lldb-bench If you want to add a
benchmark, just make a PR to that repository and I'll merge it. See
the README of the repo for instructions.

I'll add more benchmarks in the future, but you are welcome to add your own.

Also, if you for some reason don't appreciate my amazing GNUplot
markup skills and prefer your own graphs, you can just grab the raw
benchmark data from here: https://teemperor.de/lldb-bench/data/ The
data format is just the time, git-commit and the
instruction-count/memoryInKB value (depending if it's a `.mem.dat` or
a `.inst.dat`).

On a side note: Today's spike in memory is related to changes in the
build setup, not a LLDB change. I don't expect too many of these
spikes to happen in the future because the benchmark framework is now
hopefully stable enough.


- Raphael

More information about the lldb-dev mailing list