我有一个用C++编写的应用程序,别人用这种方式编写的应用程序应该最大限度地利用cpu缓存。此应用程序运行在使用半虚拟化的来宾Ubuntu操作系统上。我运行cachegrind,收到了非常低的缓存未命中率。
由于我的操作系统是虚拟化的,我能否确保这些值实际上是正确的,以显示我的应用程序的cpu缓存得到了很好的利用?
发布于 2011-05-11 21:47:20
Cachegrind是一个模拟器。一个真实的CPU实际上可能会有不同的表现(例如,你的真实CPU可能有不同的缓存层次结构来缓存,不同大小的缓存,不同的替换策略等等)。您需要观察真实的CPU性能计数器,以确定您的程序在实际硬件上相对于缓存的性能有多好。
https://stackoverflow.com/questions/4631737
复制相似问题