Callgrind viewer for macOS

download on the mac app store

Dark ModeLight Mode Treemap, Callgraph, Flamegraph, Heatmap, Call tree, Print and PDF, Sourcefile viewer. Combine multiple metrics into one chart.

Profiling Viewer for macOS opens and visualizes callgrind files. Runs natively on both Apple silicon and Intel® based Mac computers. You can use treemap, callgraph, flame graph, sortable list or call tree to identify and analyze functions where your application spends more time than expected. It also supports reading gzip compressed profiling files.

For example, you can open callgrind profiler files generated by the Xdebug extension for PHP, php-memprof, Valgrind, Ruby ruby-prof, Python cProfile with pyprof2calltree, gperftools-pprof, Golang with pprof, Node.js with Valgrind or nodegrind and many other profiling tools with callgrind file output.

Xdebug added support for memory profiling php scripts. Profiling Viewer already handles multiple types of costs. Just open the generated file and select between Time and Memory costs types.

Treemap

Function costs visualized as Treemap. The color schema of the treemap is selectable between palette or heatmap. In heatmap mode you can combine the main metrics with a secondary metrics. The main metrics (eg. Time) determines the size, the secondary metrics eg. callcount or any other available costs determines the color of an area on the heatmap.

Callgraph

Function costs visualized as Callgraph. You can combine up to three metrics to build the callgraph. The main metrics (eg. Time) determines which functions will be displayed on the callgraph and is represented by the thickness of the connections between the nodes. You can use callcount or any other available cost to control the color (heatmap) and the area (size) of the call graph nodes. The callgraph complexity can reduced by hiding functions with cost below a customizable preset. The node shape is also customizable.

The callgraph is zoomable and understands trackpad gestures like zoom in, zoom out, smart zoom. You can drill down through double-click, mouseover for details

Flamegraph

Function costs visualized as Flamegraph. The color schema of the Flamegraph is selectable between palette or heatmap. In heatmap mode you can combine the main metrics with a secondary metrics. The main metrics (eg. Time) determines the width of the node, the secondary metrics eg. callcount or any other available costs determines the color of a node on the heatmap.

Normally, small funtions can become invisible due to the limitations of the current screen resolution. Profilingviewer cumulates the cost of these small functions and displays a virtual node in gray with the cumulated cost.

Sourcefile viewer

The loaded source code is annotated with costs. You can define where your source codes located and when required, how these locations should be mapped to the server path found in callgrind file. Profiling Viewer opens the source code of the selected function and annotates its lines with the corresponding costs.

Suppress functions

Functions can be suppressed based on the source file path. For example, you can use this feature to hide system functions to get a better overview of your own code. For some languages a customizable preset is included. You can extend this preset with your own paths.

4 printed pages, Details, Treemap, Callgraph, Flamegraph

Reports: Print or PDF

Print or export reports as PDF with Treemap, Callgraph and Flamegraph. All diagrams in the PDF file are vector graphics.

Other features

  • Supports reading gzip compressed profiling files
  • Displays function calls as call tree
  • Handles multiple types of costs and positions
  • Parses compressed callgrind files
  • Displays costs as raw data, as selected unit or as percent
  • Navigation history
  • Supports Dark Mode
  • Runs natively on both Apple silicon and Intel® based Mac computers
  • Works with macOS 14 (Sonoma), macOS 13 (Ventura), macOS 12 (Monterey), 11 (Big Sur), 10.15 (Catalina), 10.14 (Mojave), 10.13 (High Sierra), 10.12 (Sierra), 10.11 (El Capitan), 10.10 (Yosemite), 10.9 (Mavericks)
  • Small memory footprint (for example, approximately 280 MB memory used to open and display a 4.6 GB callgrind file generated by xdebug)
  • Opens callgrind files generated by Valgrind, Ruby ruby-prof, the Xdebug extension for PHP, php-memprof, Python cProfile with pyprof2calltree, gpertools pprof, go programs with pprof, Node.js with nodegrind and most other callgrind files
  • You can open callgrind files via Command Line too

download on the mac app store