0.12.0 - 2024-04-16
·
1062 commits
to main
since this release
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)
- macOS, Linux: More reliable handling of Ctrl+C during profiling.
- macOS: Support recording workloads with deep recursion by eliding the middle of long stacks and not running out of memory.
- x86_64: Improve disassembly of relative jumps by displaying the absolute target address (#54, by @jrmuizel)
- macOS: Use yellow instead of blue, for consistency with Linux which uses yellow for user stacks and orange for kernel stacks.
Other
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 | shInstall 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 | checksum |
| samply-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |