Hasty Briefsbeta

Optimizing My Disk Usage Program

17 days ago
  • #macOS
  • #concurrency
  • #performance
  • 文章讨论了macOS快速磁盘空间分析工具'dumac'的性能优化
  • 初始版本使用Tokio实现并发,但切换到Rayon后通过减少线程调度开销获得了约28%的性能提升
  • Rayon的工作窃取机制以最小开销实现了更高效的递归目录大小计算
  • 文章重点指出切换至Rayon后系统调用和上下文切换减少了约80%
  • 使用分片哈希集合来去重inode时,由于inode的连续特性导致了锁竞争
  • 通过位移inode位(inode>>8)优化分片选择策略,将平均锁冲突从约176次降至4次
  • 减少inode锁竞争带来的最终性能增益约为5%
  • 所有改进均通过hyperfine基准测试工具和macOS Instruments进行了验证