我知道这是一个特定于平台的问题,但是我想要对应用程序进行一些运行时分析,以检测缓存未命中和命中情况。我知道cachegrind是valgrind工具的一部分,还有vtune等其他性能分析工具。然而,我对实现自己版本的缓存未命中检测很感兴趣。我知道cachegrind充当了缓存模拟器的角色。除了破坏内核外,我如何在程序中实现缓存未命中检测呢?我有一种感觉,在用户空间应用程序中实现这个功能几乎是不可能的,但我还是想问一下。
有一种方法可以做到这一点!在Linux上,您可以利用Linux性能计数器子系统来实现此目的。例如,可以在此处查看:http://lxr.linux.no/#linux+v2.6.37.3/tools/perf/