Profiling Viewer for macOS opens and visualizes callgrind files. You can use treemap, callgraph, sortable list or call tree to identify and analyze functions where your application spends more time than expected.
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.
The new Xdebug 2.6 (and later) 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.
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.
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
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.
Reports: Print or PDF
Print or export reports as PDF with Treemap and Callgraph
- 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
- Native MacOS App
- Works with MacOS 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan), 10.12 (Sierra), 10.13 (High Sierra), 10.14 (Mojave), 10.15 (Catalina)
- 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