💡
原文英文,约2800词,阅读约需11分钟。
📝
内容提要
在基准测试中,为确保结果准确需过滤噪声。通过多次长时间运行、冷启动和使用大页等方法可减少噪声影响。同时,需关注二进制布局和调度器对性能的影响。优化基准测试时,去除不必要部分能更清晰地反映代码改动效果。
🎯
关键要点
-
基准测试中需过滤噪声,以确保结果准确。
-
多次长时间运行和冷启动可以减少噪声影响。
-
关注二进制布局和调度器对性能的影响。
-
优化基准测试时,去除不必要部分能更清晰地反映代码改动效果。
-
传统方法是多次运行基准测试,确保每次运行足够长。
-
需要根据基准测试和硬件决定运行次数和时长。
-
冷启动测试可以消除缓存带来的随机噪声。
-
使用MAP_POPULATE可以减少页面故障带来的噪声。
-
使用大页可以减少页面表管理的开销。
-
透明大页(THP)可能会增加噪声,建议禁用。
-
二进制的布局会影响性能,使用mold的--shuffle-sections选项可以随机化输出。
-
NUMA调度可能会引入噪声,使用numactl可以将进程绑定到特定CPU。
-
在基准测试中,避免不必要的操作可以提高测量的准确性。
-
在基准测试中,使用OFFSET跳过结果可以减少开销。
-
不同的CPU或编译器版本可能会显著影响基准测试结果。
❓
延伸问答
如何在基准测试中减少噪声的影响?
可以通过多次长时间运行、冷启动、使用MAP_POPULATE和大页等方法来减少噪声影响。
冷启动测试的目的是什么?
冷启动测试的目的是消除缓存带来的随机噪声,以确保基准测试结果的准确性。
使用大页对基准测试有什么影响?
使用大页可以减少页面表管理的开销,从而使基准测试的结果更易于测量。
如何优化基准测试以提高准确性?
优化基准测试时,去除不必要的操作可以更清晰地反映代码改动的效果。
二进制布局如何影响基准测试结果?
二进制布局会影响性能,随机化输出可以减少由布局变化引起的噪声。
NUMA调度对基准测试有什么影响?
NUMA调度可能引入噪声,使用numactl可以将进程绑定到特定的CPU,从而减少这种影响。
➡️