Crate scuffle_pprof

Source
Available on Unix only.
Expand description

A crate designed to provide a more ergonomic interface to the pprof crate.

Only supports Unix-like systems. This crate will be empty on Windows.

See the changelog for a full release history.

§Feature flags

  • docs — Enables changelog and documentation of feature flags

§Example

// Create a new CPU profiler with a sampling frequency of 1000 Hz and an empty ignore list.
let cpu = scuffle_pprof::Cpu::new::<String>(1000, &[]);

// Capture a pprof profile for 10 seconds.
// This call is blocking. It is recommended to run it in a separate thread.
let capture = cpu.capture(std::time::Duration::from_secs(10)).unwrap();

// Write the profile to a file.
std::fs::write("capture.pprof", capture).unwrap();

§Analyzing the profile

The resulting profile can be analyzed using the pprof tool.

For example, to generate a flamegraph:

pprof -svg capture.pprof

§License

This project is licensed under the MIT or Apache-2.0 license. You can choose between one of them if you use this work.

SPDX-License-Identifier: MIT OR Apache-2.0

Modules§

changelog
Changelogs generated by [scuffle_changelog]

Structs§

Cpu
A CPU profiler.

Enums§

PprofError
An error that can occur while profiling.