如何使用冷缓存启动程序

Met*_*est 6 c linux gcc x86-64

我多次运行基准测试,记下平均读数.但我注意到在第一次运行后,后续运行速度更快.我想这与指令缓存有关,所以当我下次运行程序时,基准测试已经在缓存中有指令.有没有办法用冷指令和数据缓存启动程序?

rak*_*ib_ 4

这是正常行为。避免此问题的一种方法是在主要运行之前进行一些预热。这些预热运行将覆盖先前运行的程序增长的高速缓存。计算平均值时,排除热身跑值,仅取实际跑步值。那里有各种采用这些方法的基准测试工具。kernbench、 lmbench 等。其中有可用的预热值。

而且,如果您运行的基准测试取决于需要从磁盘读取的数据,那么磁盘缓存也会产生一些影响,避免的一种方法是将这些数据缓存到 RAM 上(如果可能)。该技术用于 kernbench,以避免磁盘缓存相关问题。