Experimenting profiling graphviz

Hi folks, I’m doing some profiling at work right now, and thought I’d try the profiling skills on Graphviz, to see if profiling would teach me about the architecture of graphviz.

I wrote up a blogpost with what I found: Reverse Engineering Graphviz's Architecture by Profiling

No doubt the architecture is old news to many but it was interesting for me to see the important components of Graphviz jump out so clearly on the flamechart.


This is great!

The [unknown] calls you mention maybe a result of when the plugin system calls through a function pointer. I’ve seen this kind of thing show up before when profiling with Valgrind.

Now you’re an expert, any chance you want to write the perf section? :wink:

Nice article! My colleague wondered why you didn’t test hotspot which is his favorite.

Only because I didn’t have a Linux GUI workstation handy, and I don’t think I can install it on macOS?

In practice that would probably prevent me from sharing profiles with colleagues using macOS vs web-based UIs.

1 Like