是否可以直接使用C#中的Profiling API?

时间:2011-04-20 21:26:19

标签: c# .net api profiling clr-profiling-api

我只想使用.NET Profiling API(ICorProfilerCallback等),但同时又不想处理C ++。我一直在寻找一段时间,但没有在C#中找到任何例子,而是C#+ C ++,其中最有趣的部分是用C ++编写的。

1 个答案:

答案 0 :(得分:26)

不可以,您无法在托管代码(C#或其他方式)中实现CLR分析API,因为在假定托管环境处于特定状态时,会在非常特定的时间调用分析回调。在托管代码中实现回调会违反很多假设。

CLR概要分析API的开发人员David Broman有this to say

  

你需要写你的探查器   C ++。分析器由。调用   运行期间非常微妙的点   执行配置文件的应用程序,   它往往是非常不安全的   在这些点上运行托管代码。

David's blog是处理CLR分析API的绝佳资源。