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

如何对从C#应用程序中失效的指令进行采样,c#,assembly,intel,C#,Assembly,Intel,我希望从一个C#应用程序中的英特尔芯片中获取硬件事件“失效的指令”或“失效的独占指令” 具体来说,我需要在函数调用的开始和结束时对这个数字进行采样,因此根据本文,在visual studio 2010中使用cpu计数器运行分析运行: 没有帮助。使用CPU计数器并运行采样配置文件,您可以获得整个应用程序的失效指令总数。我无法将此应用程序重新组装为仅调用此函数,因此我需要更具体地说明此示例的“开始”和“结束” 是否有人知道某些汇编指令将读取失效硬件事件的指令?想必,如果这是可用的,我可以从我的C#

我希望从一个C#应用程序中的英特尔芯片中获取硬件事件“失效的指令”或“失效的独占指令”

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

没有帮助。使用CPU计数器并运行采样配置文件,您可以获得整个应用程序的失效指令总数。我无法将此应用程序重新组装为仅调用此函数,因此我需要更具体地说明此示例的“开始”和“结束”


是否有人知道某些汇编指令将读取失效硬件事件的指令?想必,如果这是可用的,我可以从我的C#方法的开始和结束直接调用此汇编指令。

PAPI是一个非常有希望的线索,但是,我相信他们在几年前就停止了对Windows(以及.NET C#)的支持

在windows前端,Visual Studio 2010 Premium附带了performance explorer。如果在检测模式下运行任何项目或二进制文件,则可以访问硬件事件,例如失效的指令

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

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

可能与