c - 基准测试 C 代码 - 刷新缓存

标签 c linux caching papi

我想知道是否可以使用 linux x86 在 c 中强制刷新缓存。我已经阅读了几个回答如何在 shell 中或使用 asm/cache.h 执行此操作的答案(要求我编写一个 linux 模块...)

我正在使用 PAPI 库,它使我能够非常接近给定代码块执行所需的时钟周期的确切数量。但是,由于我想对一些极短的函数进行计时,因此我需要多次运行这些函数以获得准确的统计信息(计时函数调用花费的时间比 block 内的代码执行时间长)。通过多次运行代码,缓存正在加速同一代码块的连续调用的执行,我想防止这种情况发生!

最佳答案

除了将其他内容加载到缓存之外,我不知道执行此操作的任何标准方法。我通常的解决方法是简单地处理一些大到足以“冷却”缓存的东西,比如矩阵乘法。

关于c - 基准测试 C 代码 - 刷新缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21030314/

相关文章:

c# - 是否可以在将在 Linux 中运行的 .Net Core 控制台应用程序中使用 .Net Framework 4.5 Dll 引用

c - 编写一个程序将输入复制到输出

c - Ubuntu 上的套接字(不允许操作)

c - 那么sigaction()和signal()有什么区别呢?

linux - Makefile.PL - 没有这样的文件或目录

angularjs - AngularJS 动态站点的缓存最佳实践?

html - 如何停止缓存 html 但继续缓存其他资源

css - Chrome 不显示 webfont,在缓存样式表中声明字体时回落到 Times New Roman

c++ - 保护定义的 C 宏

c - 在 C 代码中打开和打印文件内容后为 NULL