New
0.12.0 - 2024-04-16
Release Notes
Breaking changes
- The minimum supported Rust version is now 1.74.
samply load perf.datais now calledsamply import perf.data.- The
--portalias has changed from-pto-P.
Features
- Linux: Allow attaching to running processes with
samply record -p [pid](#18, by @ishitatsuyuki) - Linux, macOS: Support Jitdump in
samply record. - Linux: Support Jitdump in
samply import perf.datawithoutperf inject --jit. - Linux, macOS: Support
/tmp/perf-[pid].map(#34 + #36, by @bnjbvr) - Linux, macOS: Support specifying environment variables after
samply record. - Linux, macOS: Add
--iteration-countand--reuse-threadsflags tosamply record. - Linux: Support symbolication with
.dwoand.dwpfiles. - Linux: Support unwinding and symbolicating VDSO frames.
- Linux, macOS: Support overwriting the launched browser with
$BROWSER(#50, by @ishitatsuyuki) - Linux, macOS: Add
--profile-nameargument tosamply recordandsamply importto allow overriding the profile name (#68, by @rukai) - Linux, macOS: Support Scala Native demangling (#109, by @keynmol)
- macOS: Support
--main-thread-onlyinsamply record, for lower-overhead sampling - macOS, Linux: Unstable support for adding markers from
marker-[pid].txtfiles which are opened (and, on Linux, mmap'ed) during profiling. - Linux: Support kernel symbols when importing
perf.datafiles with kernel stacks, if/proc/sys/kernel/kptr_restrictis0. - Android: Support importing
perf.datafiles recorded with simpleperf's--trace-offcpuflag.
In progress
- Linux: Groundwork to support profiling Wine apps (by @ishitatsuyuki)
Fixes
- Linux, macOS: Don't discard information from processes with reused process IDs (e.g. due to exec).
- Linux: Support recording on more types of machines, by falling back to software perf events in more cases. (#70, by @rkd-msw)
- Linux: Fix out-of-order samples. (#30 + #62, by @ishitatsuyuki)
- Linux: Fix unwinding and symbolicating in processes which have forked without exec.
- Linux: Capture startup work of launched processes more reliably.
- Linux: Fix debuglink symbolication in certain cases. (#38, by @zecakeh)
- Linux: Fix stackwalking if unwinding information is stored in compressed
.debug_framesections. (#10, by @bobrik) - macOS: Fix symbolication of system libraries on x86_64 macOS 13+.
- Android: Allow building samply for Android. (#76, by @flxo)
- macOS: Fix Jitdump symbolication for functions which were JITted just before the sample was taken (#128, by @vvuk)
Other
- Improve build times by using the separate serde-derive crate (#65, by @CryZe)
Install samply 0.12.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mstange/samply/releases/download/samply-v0.12.0/samply-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -c "irm https://github.com/mstange/samply/releases/download/samply-v0.12.0/samply-installer.ps1 | iex"
Download samply 0.12.0
| File | Platform | Checksum | |--------|----------|----------| | samply-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum | | samply-x86_64-apple-darwin.tar.xz | Intel macOS | checksum | | samply-x86_64-pc-windows-msvc.zip | x64 Windows | checksum | | samply-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | | | | x64 MUSL Linux | |