[][src]Crate pprof

pprof-rs is an integrated profiler for rust program.

This crate provides a programable interface to start/stop/report a profiler dynamically. With the help of this crate, you can easily integrate a profiler into your rust program in a modern, convenient way.

A sample usage is:

let guard = pprof::ProfilerGuard::new(100).unwrap();

Then you can read report from the guard:

if let Ok(report) = guard.report().build() {
   println!("report: {}", &report);
};

Structs

Frames

A representation of a backtrace. thread_name and thread_id was got from pthread_getname_np and pthread_self. frames is a vector of symbols.

ProfilerGuard

RAII structure used to stop profiling when dropped. It is the only interface to access profiler.

Report

The final presentation of a report which is actually an HashMap from Frames to usize (count).

ReportBuilder

A builder of Report. It builds report from a running Profiler.

Symbol

Symbol is a representation of a function symbol. It contains name and addr of it. If built with debug message, it can also provide line number and filename. The name in it is not demangled.

Enums

Error

Constants

MAX_DEPTH

Define the MAX supported stack depth. TODO: make this variable mutable.

MAX_THREAD_NAME

Define the MAX supported thread name length. TODO: make this variable mutable.

Type Definitions

Result