我们有一个表现不佳的算法,我们认为这是因为CPU缓存未命中.然而,我们无法证明它,因为我们没有任何方法来检测它们.有没有办法告诉算法产生多少CPU缓存未命中?我们可以将它移植到任何可以让我们检测它们的语言.
提前致谢.
最佳答案 找出此类问题的最简单方法是使用分析器并收集缓存相关的性能计数器.
我建议检查以下工具:
>英特尔®VTune™放大器XE(支持:Linux和Windows; C/C++,Java,.NET) – http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/
> OProfile – http://oprofile.sourceforge.net/
是否可以看到算法的整体结构(如果不是太长)?