我已经读到有AMD处理器允许你测量数量 缓存命中和未命中。我想知道英特尔酷睿双核计算机上是否还有这样的功能,或者他们是否支持这个功能。
答案 0 :(得分:4)
是的,自古老的Pentium Pro以来,有很多硬件性能计数器。
Linux中的Oprofile和perf
,Linux / Windows中的Vtune,MacOSX中的Shark可以使用它们。
所有计数器都列在intel架构文档中(第3B卷,第30章;附录A中的列表): http://www.intel.com/products/processor/manuals/
即使Atom也有一些性能寄存器。
不同CPU的优秀列表之一是http://oprofile.sourceforge.net/docs/
答案 1 :(得分:1)
如果您正在使用Linux,那么哥伦比亚大学正在开发一个名为LiMiT的有趣库,它可以快速读取性能计数器并对其进行虚拟化,以避免出现和停止进程的问题,在处理器之间移动我正在和开发人员一起上课,虽然我自己也没跟这个项目有什么关系。
答案 2 :(得分:0)
This document肯定表明英特尔酷睿双核处理器可以提供您所寻求的信息。我想在谷歌网站上搜索谷歌也很有用。
答案 3 :(得分:-1)
我个人通过执行指令rdtsc的汇编包装器使用时间戳计数器。然后,我得到一个无符号的64位整数,包含自处理器通电以来已经过的内部时钟周期数。两个读数之间的差异是在两者之间执行代码所需的代码周期数。可以以相同的方式实现对高速缓存命中读数的指令的访问。
我发现很难理解在没有时间框架的情况下阅读缓存计数器会得出什么结论。此时间范围不应太长,否则任务切换或中断可能会影响该值。
根据微软的说法,如果在处理器上启用了下行节流功能(降低能耗),rdtsc指令可能不准确,应该牢记(或关闭!)。