[][src]Crate cpuprofiler

Cpu Profiler

This crate provides safe bindings to google's cpuprofiler library. This allows us to use statistical sampling to profile sections of code and consume the output in a number of ways using pprof.

Installation

In order to use this library you will need to install gperftools. There are instructions in their repository but it's roughly the following:

  1. Download package from releases
  2. Run ./configure
  3. Run make install

There may be some other dependencies for your system - these are explained well in their INSTALL document. For example libunwind (> 0.99.0) is required for 64 bit systems.

Usage

use cpuprofiler::PROFILER;

PROFILER.lock().unwrap().start("./my-prof.profile");
// Code you want to sample goes here!
PROFILER.lock().unwrap().stop();

The profiler is accessed via the static PROFILER: Mutex<Profiler>. We limit access this way to ensure that only one profiler is running at a time - this is a limitation of the cpuprofiler library.

Modules

error

Error handling for the cpuprofiler thanks to error_chain!

Structs

PROFILER

Static reference to the PROFILER

Profiler

The Profiler

Enums

ProfilerState

The state of the profiler