我想知道是否可以使用 linux x86 在 c 中强制刷新缓存。我已经阅读了几个回答如何在 shell 中或使用 asm/cache.h 执行此操作的答案(要求我编写一个 linux 模块...)
我正在使用 PAPI 库,它使我能够非常接近给定代码块执行所需的时钟周期的确切数量。但是,由于我想对一些极短的函数进行计时,因此我需要多次运行这些函数以获得准确的统计信息(计时函数调用花费的时间比 block 内的代码执行时间长)。通过多次运行代码,缓存正在加速同一代码块的连续调用的执行,我想防止这种情况发生!
最佳答案
除了将其他内容加载到缓存之外,我不知道执行此操作的任何标准方法。我通常的解决方法是简单地处理一些大到足以“冷却”缓存的东西,比如矩阵乘法。
关于c - 基准测试 C 代码 - 刷新缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21030314/