Zoom is a performance analysis tool for applications running on the Linux and Mac OS Xoperating systems from RotateRight. Using statistical profiling, this software diagnoses performance problems related to cpu- and memory-intensive program code. Unfortunately development ended on this product in 2015.
Each sample is taken after a fixed period of time has elapsed or set number of events has occurred. In this way samples are taken in code proportionate to where more time is spent or more events occur.
Statistical sampling can be either system-wide or target a specific process. System-wide sampling captures all of the processes running on a system, and can include time spent in kernel or driver code as well. Process-targeted sampling can be used to understand time spent waiting for I/O or kernel work.
Additional information besides the program counter can be recorded at each interval. For example, other hardware performance counters can be read or the entire functioncallstack can be recorded. Recording the stack is important because it allows the developer to know not only where time was spent, but also how that code was called.
Call Tree Visualization
Symbol information is used to map program addresses to symbol names. Breaking down a profileat symbol granularity is a useful way to understand the time spent in blocks of code. There are a variety of methods for summarizing the information in a set of samples that include backtraces of each sample's call stack:
Top-down visualization is used to find "hot" call paths, starting at the root symbol.
Bottom-up visualization is used to find "hot" code, starting in the symbols where samples occurred.
Hotspot visualization is a complete list of symbolsencountered in the profile that is used in conjunction with a side-by-side tree and leaf views. Selecting a symbol in the hotspot list shows the callers and callees of that symbol in the butterfly view.
Code visualization
Code visualization enables the developer to correlate source code to machine instructions. It also allows for each line of source or instruction to be annotated with performance data.
Debug information such as DWARF can be used to map program addresses back to source code. This is the same information used by debuggers such as gdb.
A code analysis engine parses source or assembly code to provide tuning advice for specific processors and architectures. Zoom's code analysis engine performs the following: