我有一个用C ++编写的应用程序,其他人以一种应该最大限度地利用cpu缓存的方式编写。此应用程序在使用半虚拟化的来宾Ubuntu OS上运行。我运行cachegrind并收到非常低的缓存未命中率。
由于我的操作系统是虚拟化的,我可以确定这些值在显示cpu缓存是否适用于我的应用程序时实际上是正确的吗?
答案 0 :(得分:-1)
Cachegrind是一个模拟器。实际CPU实际上可能执行不同的操作(例如,您的真实CPU可能具有与cachegrind不同的缓存层次结构,不同大小的缓存,不同的替换策略等等)。您需要观察真实的CPU性能计数器,以确定您的程序在真实硬件上的实际执行情况与缓存有关。