4 releases

new 0.1.0 Feb 10, 2025
0.0.3 Feb 9, 2025
0.0.2 Dec 8, 2024
0.0.1 Dec 1, 2024
0.0.0 Nov 28, 2024

#152 in Profiling

38 downloads per month
Used in scuffle-bootstrap-telemet…

MIT/Apache

11KB
69 lines

scuffle-pprof

[!WARNING]
This crate is under active development and may not be stable.

crates.io docs.rs


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

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

Status

This crate is currently under development and is not yet stable.

Unit tests are not yet fully implemented. Use at your own risk.

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

Dependencies

~8–20MB
~310K SLoC