Zoom

Zoom, the system-wide profiler for Linux and Mac OS X, increases programmer productivity and saves money, time and energy. Use Zoom to profile your software and to optimize your code and system performance today. Zoom’s callstack samples and trace data show you where time is being spent with very little overhead and no need to modify source code.

See what’s new in Zoom 3.3.2

Profile Browser


The Profile Browser shows you exactly what code was executing during a profile. Navigate the call graph top-down (tree), bottom-up (leaf) or hybrid (butterfly). Drill down into the performance of any symbol included in the profile by opening a Code Browser.


Code Browser


The Code Browser highlights source code and disassembly according to their importance in the profile. Zoom analyzes each line of code to point out performance problems and offer solutions. The result is an immediate understanding of which lines of code dominate performance and are the best candidates for further optimization.


Timeline Browser


The Timeline Browser shows you the behavior of processes and multi-threaded code over time. System calls and other performance events are displayed on the timeline to help you understand how code interacts with the system.


Static Analysis


Static analysis inspects the complete contents of a file for potential performance issues. Learn precisely what is in a binary and why. Get optimization advice for any symbol in a file.


Local and Network Profiling


The Zoom GUI and CLI can run on the same machine. In this mode, the Zoom CLI starts automatically and runs in the background. The Zoom GUI can also profile another machine over the network. In this mode, the Zoom CLI starts in server mode on the target, and the Zoom GUI attaches to the target.



Ready for Takeoff

Zoom is ready to profile with a single click. Source code does not be modified or recompiled in order to be profiled.

All Seeing

System-wide profiling includes all running processes. Inspect user-space applications, the kernel and driver code.

Freedom to Choose

CPU vendors' profilers are tied to specific processor families. With Zoom, you can profile on all mainstream processors.

The Big Picture

A backtrace is collected with every sample, so you know exactly what code is running and why it's running.

Brain Transplant

Zoom analyzes your application's assembly and source code to provide processor-specific performance hints.

Trust No One

Open any executable, library or object file and browse its contents. See what the compiler has included and what might be improved.

Ghost in the Machine

Zoom's overhead is typically under 5% of total time so you get an accurate picture of your application's hotspots.

Speak in Tongues

Zoom provides definitions for assembly instructions and offers specific tuning advice for many compilers.

Remote Control Included

Zoom can profile across a network using a unique client/server model. You can also profile on the command-line or with scripts.

The Blame Game

Since Zoom is low-overhead and scriptable, you can use Zoom as a QA tool. Run it with every build to track performance regressions.

Introduction


Advanced Topics


Compatibility

Programming Languages

Zoom works with the following languages:
   • C/C++
   • Fortran
   • Assembly
   • Other compiled languages

Debug Information

To correlate source code to samples, Zoom requires code to be compiled with DWARF debug information. For most compilers, pass in the “-g” flag to generate this information.

Linux Requirements

Hardware

Zoom can collect profiles using three different drivers: perf, oprofile and rrprofile.

The perf driver supports all Zoom profiling modes and can be used with Linux kernel 2.6.38 or later. Partial functionality is available for kernels 2.6.34 through 2.6.37 or on Red Hat Enterprise Linux / CentOS 6 with kernel 2.6.32.

The hardware supported by the perf and oprofile drivers depends on the Linux kernel version.

The hardware supported by the rrprofile driver:
   • Intel Core 2, Core i3/i5/i7, Xeon
   • Intel Atom, Core, Pentium M, Pentium 4
   • AMD Bulldozer
   • AMD Athlon, Athlon64, Athlon II
   • AMD Phenom, Phenom II

The oprofile and rrprofile drivers do not support scheduler or system call tracing.

Software

Zoom works with these distributions:
   • Arch
   • Debian
   • Fedora
   • Mint
   • openSUSE
   • Red Hat Enterprise Linux / CentOS
   • SUSE Linux Enterprise
   • Ubuntu

Zoom can be installed on other distributions – refer to Install/Manual Overrride in the release notes. Basic functionality via oprofile kernel modules is available for unsupported kernel releases. For questions or assistance, please contact us.

Mac OS X Requirements

Hardware

Zoom can collect profiles on any 64-bit capable Intel Macintosh.

Scheduler and system call tracing are not yet supported on Mac OS X.

Software

Zoom works on Mac OS X 10.9 (Mavericks) or 10.8 (Mountain Lion).

Click here to review the Zoom End User License Agreement (EULA).