pprof2
An internal perf tools for rust programs.
0.13.1
4.9M downloads/mo
#4560 most downloaded on crates.io
tikv/pprof-rs
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Too new to tell
only 2 dated releases
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
2 releases · first in 2024
0 releases in the last 12 months
see the full history below
Release timeline
2 releases · Oct 2024 to Nov 2024
2025
2026
Releases
latest 2-
0.13.121 Nov 2024 -
0.13.011 Oct 2024Release notes
Open source →Added
- Fix and cover tests for target x86_64-unknown-linux-musl (#140)
Fixed
- renaming
- remove protobuf crate
- check if ptr is valid in validate
- rename crate in examples
- use T aligned pointer in TempFdArray
- handle potentially unaligned frame pointer (#217)
- fix memory leak in collector (#84)
- fix clippy error (#52)
- fix incorrect inline functions (#50)
- fix test
- fix example import (#25)
- fix bugs caused by link test all the time
- fix bugs in TempFdArray
- fix bug: buffer in TempFdArray should be sliced when iter around it
- fix bug: malloc shouldn't be used in signal handler
- fix cargo warning
Other
- Update release-plz.yaml
- Update rust.yml
- Update rust.yml
- move cpu logs to debug
- update prost file
- fix benches
- fix lints
- update CI minimum to 1.81.0
- Create release-plz.yaml
- update dependencies
- Rename to pprof2, update MSRV
- Bump version to v0.13.0 (#226)
- Update
prost,prost-deriveandprost-buildto0.12(#223) - Fix clippy errors (#224)
- Fix CI for 1.64.0 (#225)
- Bump version to v0.12.1 (#220)
- Change sc_pc to __pc for loongarch64 (#218)
- Bump version to v0.12.0 (#215)
- Support freebsd (#213)
- update to criterion 0.5 (#212)
- hide
perf_signal_handlerframes on macOS (#207) - Splitting profile_proto example (#208)
- Bump the symbolic-demangle to 12.1 (#205)
- Correct required-features for profile_proto example (#206)
- Fix build for aarch64-linux-android (#202)
- Bump the MSRV to 1.64.0 (#204)
- bump version to 0.11.1 (#199)
- use globally shared pipe to validate memory (#198)
- update the prost generated file and remove malloc_free (#188)
- Update nix requirement from 0.24 to 0.26 (#179)
- Add loongarch64 support (#174)
- add riscv arch (#169)
- Improve prost file format (#175)
- Bump version to v0.11.0 (#173)
- Update symbolic-demangle requirement from 9.0 to 10.1 (#170)
- Only do per-frame-blocklist-check when frame-pointer is enabled (#172)
- Restart syscalls interrupted by SIGPROF when possible (#167)
- update prost 0.11 (#166)
- Update criterion requirement from 0.3 to 0.4 (#163)
- Bump version to v0.10.1 (#162)
- Bump version to v0.10.1 (#161)
- Increase the max supported stack depth to 128 (#159)
- ignore prost mod and fix clippy warning (#160)
- Bump version to v0.10.0 (#146)
- Make clippy happy in all targets (#144)
- Update symbolic-demangle requirement from 8.0 to 9.0 (#137)
- Adds timing info to each sample (#133)
- Export UnresolvedReport (#132)
- Optimize mutually exclusive features (#130)
- Bump version to 0.9.1 (#129)
- Protect errno (#128)
- bump version to v0.9.0 (#124)
- add fs feature (#125)
- Update nix to 0.24, limit features (#121)
- Unwind through frame pointer (#116)
- Bump version to 0.8 (#118)
- Update prost requirement from 0.9 to 0.10 (#115)
- Update prost-build requirement from 0.9 to 0.10 (#114)
- Update prost-derive requirement from 0.9 to 0.10 (#113)
- Update Readme to fix the pprof version (#117)
- add vdso to the blocklist in README.md (#111)
- Fix pthread_getname_np not available on musl (#110)
- Bump version to 0.7.0 (#109)
- add rust 1.56.0 to the ci matrix (#108)
- Update inferno requirement from 0.10 to 0.11 (#107)
- add msrv to the README.md (#101)
- Bump actions/checkout from 2 to 3 (#105)
- support rust-protobuf (#106)
- change to once_cell from lazy_static (#103)
- Update parking_lot requirement from 0.11 to 0.12 (#99)
- bump version to v0.6.2 (#96)
- add CHANGELOG (#97)
- (derive) add Clone directive to ProfilerGuardBuilder (#95)
- Add thread names and timing information to protobuf reports (#90)
- Fine tune the usage of
MaybeUninited(#89) - add allow(clippy::large_enum_variant) to Output (#93)
- migrate to rust 2021 (#91)
- bump version to v0.6.1 (#87)
- avoid deadlock by skipping sampling in libc, libgcc and pthread (#85)
- bump version to v0.6.0 (#83)
- bump deps and make clippy happy (#82)
- bump version to v0.5.0
- Bump prost* (#73)
- Bump actions-rs/cargo from 1 to 1.0.3 (#63)
- Bump actions-rs/toolchain from 1 to 1.0.7 (#64)
- bump version to v0.4.4
- add phantom data for criterion output (#68)
- modify document according to the current API (#62)
- bump version to v0.4.3
- Adjust the output paths
criterion::PProfProfileruses to support benchmark groups (#59) - Update nix requirement from 0.19 to 0.20 (#56)
- bump version to v0.4.2
- Fix compilation error on arm architecture (#55)
- implement criterion Profiler (#53)
- bump version to v0.4.1
- allow passing custom flamegraph options (#51)
- bump version to v0.4.0
- bump version to v0.3.21
- give a reasonable hint for musl-libc based host (#47)
- Update rand requirement from 0.7.2 to 0.8.0 (#46)
- Update nix requirement from 0.17 to 0.19 (#43)
- Add dependabot to keep dependencies up to date (#42)
- bump version to v0.3.20
- split symbolic-demangle into multiple features
- bump version to 0.3.19
- ignore SIGPROF rather than default signal handler
- refactor frame.rs and parts of others (#37)
- Add license scan report and status (#39)
- bump to version 0.3.18
- Add Report::build_unresolved API (#35)
- Fix erroneous comment (#34)
- Remove extraneous
mut(#33) - bump to version 0.3.17
- Use criterion for benchmarking (#30)
- Replace spin with parking_lot (#29)
- Update README.md
- bump to version 0.3.16
- use symbolic_demangle
- bump to version 0.3.15
- filter out signal handler function
- filter out signal handler function
- bump to version 0.3.14
- get backtrace after getting lock
- remove lock in backtrace::backtrace
- bump version to 0.3.13
- only use thread name on linux and macos
- reset dependency version
- Miscellaneous tidying up
- bump version to v0.3.12
- stop timer before profiler stops
- Merge remote-tracking branch 'origin/master'
- turn collector into sum counter
- move collector data from stack to heap
- add benchmark
- Fix typo & add benchmark
- Add a image of pprof output
- update protobuf README.md and example
- upgrade version
- support protobuf
- merge with lonng's proto support
- update README.md and documentation
- update readme and documents
- insert badges into README.md
- update README.md
- add document of pprof
- add introduction to frame_post_processor in README.md
- update version
- smaller buffer length
- update README.md
- remove test on malloc
- update version
- update crate name
- update version
- add test for malloc
- use less stack space
- update README.md
- update version
- update version
- use pthread functions to get thread id and thread name
- make clippy happy!
- support frames post processor
- add thread_id and thread_name message in sampler and report
- update version
- update guard related codes
- update version
- modify README.md to use RwLock
- impl Send for Symbol
- resolve frame at report time
- update version
- unregister signal when start processing
- add some logs
- add guard support
- remove uneeded println!
- clear data after stop
- check for whether profiler is running
- remove uneeded use
- add repository in Cargo.toml
- add README.md and description
- ignore first two layers of profiler
- add flamegraph feature
- use symbol to seperate functions
- simple profiler
- Initial commit