App: Profiling Viewer
Developer: Attila Soki
Genres: Developer Tools, Utilities

Profiling Viewer opens and visualizes callgrind files. You can use Treemap, Callgraph, flat or hierarchic lists to identify functions where your application spends more time than expected.

Highlights:
- Runs natively on both Apple silicon and Intel-based Mac computers
- Mix & Match: combine multiple cost types to construct a Callgraph or a Treemap
- Handles multiple costs and position types
- Supports reading gzip compressed profiling files
- Elegant reports for printing or as PDF
- Treemap with heatmap
- Callgraph with heatmap
- System functions can be hidden based on customizable presets
- Compatible with Xdebug
- Beautiful Dark Mode
- Source lines annotated with costs

You can generate the required callgrind profiling data with various external tools available for many platforms and programming languages.
For example, you can open callgrind files generated by the Xdebug extension for PHP, Valgrind, Ruby ruby-prof, Python cProfile with pyprof2calltree, gperftools-pprof, golang pprof, node.js nodegrind and many other profiling tools with callgrind file output.

Features:
- Function costs visualized as Treemap, Callgraph and Lists
- Combine Treemap and  Callgraph with Heatmap
- Supports reading gzip compressed profiling files
- Elegant reports for printing or as PDF
- System functions can be hidden based on customizable presets
- Drill down through double-click, mouse over for details
- Source file Viewer annotated with costs and color marks
- Configurable source locations
- Displays costs as raw data or as percent
- Handles multiple costs and position types
- Shows cycles and recursions
- Sort data by costs, function name or filename
- Navigation history
- Parses compressed callgrind files
- Small memory footprint (for example, approximately 280 MB memory used to open and display a 4.6 GB callgrind file generated by xdebug)

The Callgraph view is:
- Zoomable
- Supports trackpad gestures like zoom in, zoom out, smart zoom
- Represents call costs by the thickness of connections
- Its complexity can be reduced by hiding functions with cost below a customizable preset



Profiling Viewer uses graphviz to layout and render callgraphs. Graphviz is licensed under the Eclipse Public License v1.0. You can download graphviz at http://www.graphviz.org

Release notes:
An additional button (U) has been added to simplify opening the unit selector.  Previously, the unit selector was accessible by a second click on the N button.
Minor optimizations to the treemap
A new settings option has ben added. You can now opt-out of the os theme and select light or dark mode for the app.