Skip to content

v0.7.0

Pre-release
Pre-release

Choose a tag to compare

@rocketman-code rocketman-code released this 05 Mar 06:10
· 456 commits to main since this release
9d42260

Async profiling arrives. Piano now instruments async functions and tracks self-time accurately across thread migrations, so tokio::spawn, select!, and work-stealing runtimes produce correct results.

Added

  • Async self-time tracking: migration-safe Guard tracks self-time correctly when async tasks migrate across threads (#94)
  • Guard checks injected after .await at any nesting depth (if, match, loop), not just top-level statements (#142)
  • Function names preserved for migrated async guards -- no more <migrated> bucket in reports (#116)
  • Phantom stack entry cleanup on intermediate threads during multi-hop migration (#141)
  • Instrument fn items inside macro_rules! definitions when profiling all functions (#143)

Changed

  • Guard check injection uses recursive visitor instead of flat top-level iteration, catching .await inside nested expressions