Hasty Briefsbeta

双语

Lessons Learned Building High-Performance Rust Profiler

5 hours ago
  • hotpath-rs 是一款全能的 Rust 性能分析/调试工具包,将挂钟计时、内存分配和 CPU 采样整合为统一的报告。
  • 不同的性能信号(计时、分配、CPU)能揭示不同类型的瓶颈,例如异步休眠主导挂钟耗时但几乎不消耗 CPU。
  • 核心检测机制采用 RAII 守卫;通过批处理通道消息避免 `Thread::unpark` 开销,每次测量的性能从约 500 纳秒提升至约 80 纳秒。
  • 内存分配跟踪使用线程本地栈,但对于可能迁移线程的异步函数,通过 `InstrumentedFuture` 包装器正确归因每次 `poll` 调用的分配情况。
  • 通过向线程分配统计添加 `#[repr(align(64))]` 减少缓存行争用,多线程性能提升高达 86%。
  • CPU 性能分析通过独立进程集成 samply;通过映射二进制文件调试信息中的符号范围来解析原始 CPU 跟踪。
  • 独占与包含式 CPU 归因使用栈帧的链表遍历;CPU 归因使用 `threadCPUDelta` 而非采样计数,以区分活跃 CPU 时间与空闲时间。
  • 未来工作包括基于 DWARF 的符号解析、更多 CPU 检测模式,以及用于分享和比较性能分析的托管版本。