背景
很多 allocator 优化在 micro benchmark 里很好看,上线却收益一般。原因是评测维度不完整。
建议指标
- p50/p95/p99 分配耗时
- 长时间运行碎片率
- 多线程争用下吞吐波动
auto begin = std::chrono::steady_clock::now();
void* p = alloc.allocate(256);
alloc.deallocate(p, 256);
auto end = std::chrono::steady_clock::now();
总结
评测方法比结果数值更重要,先保证实验可信,再比较方案优劣。
性能数据要能解释真实场景,才有决策价值。