2009-08-12 30 views
6

是否有任何小工具,讓我獲得由英特爾CPU計數器收集的數據(如L1/L2高速緩存未命中,分支預測失敗......你知道有他們的hunderts在現代Core2 CPU上)。如何訪問英特爾CPU計數器

它必須在Windows上運行(同時能夠使用Solaris,FreeBSD上,Linux的使用,MacOSX的當然會是很好)。

+0

好的,在此期間我找到了PAPI庫。但是這或多或少只是一個Linux(僅支持Sparc上的Solaris),並且需要一些Linux內核補丁 - 是的,我知道Linus說性能監控是兩個真正的弱點之一。 而我發現perfmon2和兔子(一個死了的項目),這也只是Linux。 到目前爲止沒有一個窗口命中。 – Lothar 2009-08-12 14:27:49

回答

0

你沒有寫你正在尋找一個應用程序或圖書館。

對於Windows,有英特爾VTune。但這不是一個小工具。對於linux我已經使用oprofile,它沒有內核補丁。

+0

我正在尋找一個庫,因爲我想編寫一個記錄INSTRUCTION_RETIRED事件而不是毫秒的儀器分析器。 是的,也許還有一些其他的東西,所以你可以看到它像一個小VTune像我想寫我自己的工具。 – Lothar 2009-08-13 17:34:45

+0

我不認爲有一個圖書館。性能監視器寄存器可通過rdmsr和wrmsr指令訪問。 首先,您可以查看「Intel 64和IA-32架構軟件開發人員手冊」(谷歌最新版本)第3B卷第18.11章。這裏正好描述了你需要訪問性能計數器的內容。 – hirschhornsalz 2009-08-13 22:12:14

0

在OS X上,鯊魚,您可以從兩局獲得的數據。除了英特爾的工具之外,我不確定Windows上有什麼可用(VTune,如drhirsch所述)。

0

試試這個 http://icl.cs.utk.edu/papi/ 它是一個完整的庫,使您可以讀取任何CPU計數器的數據,工作都在Windows和Linux [和其他OS]

+0

PAPI在Windows上不起作用。 – 2017-05-04 07:03:05

1

PAPI是一個非常有前途的領先優勢,不過,我相信他們在幾年前停止了對Windows(以及.NET C#)的支持。

在前面的窗戶,Visual Studio 2010的高級版自帶性能探險。如果在儀表模式下運行任何項目或二進制文件,則可以訪問硬件事件,例如退休的指令。

的結果有一定的混合和不一致取決於外部因素,但它與Visual Studio完美集成在一起,你會得到每方法/模塊級詳細數(平均,最高,總計)上。

英特爾V-調整性能分析器本身也暴露出這些。我還沒有玩過這個工具,但它可能是一個比Visual Studio 2010公開的更靈活的API。

+2

謝謝,但我的業務是開發和銷售IDE的我自己。所以這顯然不能幫助我。 – Lothar 2010-10-21 13:33:25

4

這個帖子看起來有點老了,但如果你還有興趣,我最近在這個主題上寫了一個howto,在Linux上使用rdmsr和wrmsr。它只處理Westmere的英特爾uncore上的性能計數器,但我所描述的過程可能會幫助您找出需要的東西,如果還沒有的話。我確信Windows對RDMSR和WRMSR有一些等效的程序或函數調用。問題是您需要響鈴0(內核模式)才能讀取MSR。我不知道如何在Windows中做到這一點。如果您有任何Windows問題,我將無法提供幫助,但可以回答一些與MSR相關的問題。但我絕不是專家。

0

此線程看起來很舊。但是,上述所有計數器都可以在Intel PCM上找到。這些計數器可以用作Microsoft Perfmon插件或命令提示符界面。英特爾PCM提供的信息包括L2和L3高速緩存命中率,高速緩存未命中等。