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进行了验证