当前位置:首页 > 操作系统 > Linux

在Linux中实际检测缓存未命中和命中

我知道这是特定于平台的问题,但是,我想对应用程序进行一些运行时分析,以检测缓存未命中和命中.我知道cachegrind,valgrind和vtune的工具,还有一大堆其他的分析工具.但是,我感兴趣的是,在实现我自己的缓存未命中检测版本时.我知道cachegrind充当缓存模拟器.在不破坏内核的情况下,如何实用地检测缓存缺失?我觉得这对于用户土地应用来说几乎是不可能的,但我不得不问.

解决方法:

How can I detect a cache-miss pragmatically [without cache simulation]?

缓存由硬件管理 – 而不是内核.它们的参数(高速缓存,大小,踢出策略,回写/直写等级)都是特定于处理器实现的.作为程序员,你“不应该知道它们存在”.因此,无需缓存模拟就可以测量缓存未命中性能.

另一方面,操作系统管理VM页面(一个更粗糙的“缓存” – 在缓存保存内存块的意义上).我想有办法通过黑客入侵内核甚至创建一个漂亮的用户应用程序来收集有关页面错误的统计信息.页面错误统计信息对您来说可能没什么用处(特别是因为它们受到其他正在运行的进程的影响),但是使用大量RAM的应用程序可能(很少,很小)具有页面错误或页面访问模式类似于CPU缓存访问模式.但是,我对细节不太确定.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐