# jrfonseca/gprof2dot

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jrfonseca-gprof2dot).**

3,434 stars · 395 forks · Python · lgpl-3.0

## Links

- GitHub: https://github.com/jrfonseca/gprof2dot
- awesome-repositories: https://awesome-repositories.com/repository/jrfonseca-gprof2dot.md

## Topics

`c-plus-plus` `graph` `profiling` `python`

## Description

gprof2dot is a performance graph generator and visualizer that converts gprof GNU profiler execution profiles into Graphviz DOT files. It transforms raw profiler data into a directed graph to map function call hierarchies and identify software bottlenecks.

The tool employs heuristic-based color mapping to highlight performance hotspots by assigning colors to nodes and edges based on execution time percentages. It also supports differential profile analysis, allowing for the comparison of two distinct execution graphs to identify changes in timing and call counts between runs.

To improve visualization clarity, the project includes graph pruning capabilities that remove low-impact nodes and edges based on user-defined time or call count thresholds. These utilities enable the extraction of specific function entries to define the scope of the resulting performance map.

## Tags

### System Administration & Monitoring

- [Call Graph Visualizers](https://awesome-repositories.com/f/system-administration-monitoring/function-monitoring/call-graph-visualizers.md) — Generates hierarchical visual call graphs to map function execution and analyze program latency.
- [Agent Run Comparators](https://awesome-repositories.com/f/system-administration-monitoring/agent-execution-tracing/agent-run-comparators.md) — Provides side-by-side comparison of execution profiles to detect changes in function call counts or timing.
- [General Resource Bottleneck Detection](https://awesome-repositories.com/f/system-administration-monitoring/gpu-resource-monitoring/general-resource-bottleneck-detection.md) — Identifies software bottlenecks by analyzing resource-intensive functions within execution graphs.
- [Performance Visualization](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/performance-visualization.md) — Uses color-coded visual dashboards to highlight resource-intensive functions and execution bottlenecks. ([source](https://github.com/jrfonseca/gprof2dot/blob/main/README.md))

### Development Tools & Productivity

- [Graphviz DOT Emitters](https://awesome-repositories.com/f/development-tools-productivity/graphviz-dot-emitters.md) — Converts internal call graph structures into Graphviz DOT files for external rendering.
- [Baseline-Comparison Profiling](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/debugging-diagnostics/performance-resource-profilers/cpu-profilers/baseline-comparison-profiling.md) — Identifies performance regressions by comparing current execution profiles against a known baseline. ([source](https://github.com/jrfonseca/gprof2dot#readme))
- [Execution Coordinate Mapping](https://awesome-repositories.com/f/development-tools-productivity/source-map-generators/event-to-source-mapping/execution-coordinate-mapping.md) — Maps runtime execution counts and timing to a visual structure of calling and called functions.

### Programming Languages & Runtimes

- [Profiler Output Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/profiler-output-parsers.md) — Transforms raw text output from various profilers into structured internal representations of function call relationships.

### Testing & Quality Assurance

- [C Performance Profiling](https://awesome-repositories.com/f/testing-quality-assurance/c-performance-profiling.md) — Analyzes gprof output to map function call hierarchies and locate time-consuming sections in C projects.
- [Differential Profilers](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling/differential-profilers.md) — Provides capabilities to compare two execution graphs to calculate and visualize changes in performance metrics between runs.
- [Profiling Data Visualizations](https://awesome-repositories.com/f/testing-quality-assurance/profiling-visualization-filters/profiling-data-visualizations.md) — Converts gprof profiles into a graphical format for inspecting and filtering execution data.
- [Program Execution Visualization](https://awesome-repositories.com/f/testing-quality-assurance/program-execution-visualization.md) — Turns raw profiler data into visual call graphs to identify bottlenecks and understand execution flow.

### Software Engineering & Architecture

- [Call Graph Pruning](https://awesome-repositories.com/f/software-engineering-architecture/call-graph-pruning.md) — Removes low-impact nodes and edges from graphs based on user-defined time or call count limits.

### User Interface & Experience

- [Performance Hotspot Coloring](https://awesome-repositories.com/f/user-interface-experience/color-themes/semantic-color-mappings/code-semantic-colorizers/status-based-color-coding/performance-hotspot-coloring.md) — Uses heuristic-based color mapping to highlight performance bottlenecks based on execution time percentages.
