如何对从C#应用程序中退出的指令进行采样

时间:2010-10-15 12:41:14

标签: c# assembly intel

我正在寻找从C#应用程序的intel芯片中采样硬件事件“退役指令”或“退出的专有指令”。

具体来说,我需要在函数调用的开头和结尾对这个数字进行采样,因此根据本文在visual studio 2010中使用cpu计数器运行一个分析运行:

http://msdn.microsoft.com/en-us/library/bb385772.aspx

无济于事。使用CPU计数器并运行采样配置文件,您可以获得整个应用程序已停用的总指令数。我无法重新组装这个应用程序只调用这个函数,所以我需要更具体地说明这个指令退役样本的“开始”和“结束”。

是否有人知道某些汇编指令会读取指令退役硬件事件?据推测,如果这是可用的,我可以直接从我的C#方法的开头和结尾调用这个汇编指令。

1 个答案:

答案 0 :(得分:0)

PAPI是一个非常有前途的领导者,但是,我相信他们在几年前就停止了对Windows(以及.NET C#)的支持。

在Windows前端,Visual Studio 2010 Premium附带了性能浏览器。如果在检测模式下运行任何项目或二进制文件,则可以访问硬件事件,例如已停用的指令。

根据外部因素,结果可能会有些混乱和不一致,但它很好地与Visual Studio集成,您可以在每个方法/模块级别获得详细计数(平均值,最大值,总数)。

英特尔V-tune性能分析器本身也公开了这些。我还没有使用过这个工具,但它可能是比Visual Studio 2010公开的更灵活的API。