Hasty Briefsbeta

双语

When rust ≠ performance. a lesson in developer experience

3 months ago
  • #rust
  • #rocksdb
  • #performance
  • Oxen致力于成为最快的数据版本控制工具,需要针对add/commit等命令进行TB级基准测试
  • commit命令速度显著慢于add,处理100万文件耗时超50分钟,尽管其时间复杂度应为O(n)
  • 性能分析显示90%以上的commit时间消耗在获取RocksDB暂存区锁上,源于线程争用问题
  • 跨层级的过度.clone()和db.open()操作导致数据重复获取,形成性能瓶颈
  • 某PR通过减少冗余操作和优化系统设计,将commit时间缩短至原1/20
  • 为并行写入优化的RocksDB在Oxen的并行读取场景中表现欠佳,产生意外开销
  • 经验教训:即便是独立功能模块,简洁性和系统整体设计也至关重要