gpt4 book ai didi

c++ - 缓存 C/C++ 程序中的值的命中/未命中

转载 作者:IT老高 更新时间:2023-10-28 23:00:29 31 4
gpt4 key购买 nike

这是我的要求,我知道某些算法很好地利用了缓存,有些则没有,有些在特定数据集上比其他算法做更多的 I/O,等等。我希望自己看到和分析这种情况。

所以我想知道是否有一种方法可以知道如何读取某个内存/变量,即它是从缓存中读取的,还是缓存未命中。此外,如果在检索此值时出现页面错误等。

非常感谢!

最佳答案

如果您真的想知道缓存何时命中/丢失,现代处理器具有性能计数器,您可以将其用于此目的。我已将它们广泛用于学术研究。使用它们的最简单方法是通过 perfmon2 . Perfmon2 既有可以链接到程序的库,也有可以监控现有程序的独立程序。例如,下面是记录所有 1 级数据缓存读取请求和未命中的独立程序:

pfmon -eL1D_CACHE_LD:MESI,L1D_CACHE_LD:I_STATE your_program

供引用,this document 的附录 A (PDF) 列出了英特尔关于可用硬件计数器的文档。

关于c++ - 缓存 C/C++ 程序中的值的命中/未命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886918/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com