我正在考虑在我正在编写的应用程序中添加诊断模式构建,以计算方法使用和执行时间,类似于像dotTrace这样的许多代码分析器。
但是我在通过谷歌搜索找到实现这样功能的资源时遇到了一些困难。显然,这是可能的,但有没有人可以指点我如何在.NET中实现类似于方法调用计数的功能呢?
我正在考虑在我正在编写的应用程序中添加诊断模式构建,以计算方法使用和执行时间,类似于像dotTrace这样的许多代码分析器。
但是我在通过谷歌搜索找到实现这样功能的资源时遇到了一些困难。显然,这是可能的,但有没有人可以指点我如何在.NET中实现类似于方法调用计数的功能呢?
ICorProfilerCallback2
接口的COM对象,然后使用环境变量指示CLR我们希望通过使用此类进行分析:
当CLR开始一个进程时,它会查找两个环境变量:
COR_ENABLE_PROFILING
:此环境变量设置为1或0。 1表示CLR应使用分析器。 0(或此环境变量不存在)表示不使用分析器。COR_PROFILER
:既然我们已经告诉CLR我们要进行分析,我们必须告诉它要使用哪个分析器。 因为分析器作为COM对象实现,所以此环境变量将设置为实现ICorProfilerCallback2
接口的coclass的GUID。