gprof2dot is a Python script that converts profiling output into dot graph visualizations.
The tool solves the problem of making profiler output human-readable and actionable by transforming raw profiling data into visual call graphs. It reads output from a wide range of profilers including Linux perf, Valgrind's callgrind, Sysprof, Xperf, VTune, Very Sleepy, Python's built-in profilers, Java's HPROF, gprof, DTrace, and FlameGraph's stackcollapse format. The generated dot graphs can be rendered using Graphviz into various image formats. The tool includes features to prune nodes and edges below specified thresholds, apply heuristics for handling mutually recursive functions, and use color to highlight performance hotspots. It can also compare two structurally similar graphs to analyze differences in performance metrics.
Developers should choose this tool when they need to visualize profiling data across multiple profiling tools and platforms. It works anywhere Python and Graphviz are available, making it suitable for cross-platform development workflows. The tool is particularly valuable for teams using different profilers across different languages and systems, as it provides a unified visualization approach. For interactive graph exploration, the README recommends pairing it with xdot.py.
The project's development is in maintenance mode. The maintainer explicitly states that the tool currently fulfills their needs with little time available for maintenance, meaning requested features are unlikely to be implemented and issue reports or pull requests may be processed slowly.