创建一个新的.Net Profiler Api

时间:2010-04-08 07:39:35

标签: visual-c++ profiling

我是.Net Profiler和Visual C ++的新程序员,

我读了很多关于.Net Profiling的论坛和博客,我有这个问题。

我的Profiler应用程序必须是非托管代码,或者我可以在我的应用程序中使用.Net中的某些类?什么类型的项目我必须使用MFC或..创建ATL?

另一个问题是如何注册我的探查器DLL文件,我的计算机的每个应用程序都使用此探查器?

哪里有重写IL方法的最佳情况(输入profiler或JITCompilationStarted的方法)?

如何获取旧方法的输入变量并发送给新方法?

如何更改属性或整个类的IL?

我希望chane我的dll的所有日期时间格式,我认为我必须在JITCompilationStarted中搜索那些方法的名称,然后重写那些方法,你有更好的解决方案吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

你想试试这个很好。我建议您注意some old ideas about profiling that are less than helpful,并尝试改进它们。

我建议主要关注的是代码行,而不是函数,并且要获得的最有用的统计信息是,对于每一行,负责的时间百分比(即在调用堆栈上)。 (获得百分比的好处是,您无需关心事情需要多长时间,调用它们的次数,或者它们是否与其他流程竞争。)

我认为获取该信息的最佳方式是通过随机挂钟时间采集的堆栈样本。不要仅仅因为它们在程序被阻止时发生而排除样本,除非你想对不必要的I / O视而不见。一个好的方法是让用户打开/关闭采样,这样你就不会在等待用户输入时采集大量的采样。

采用这种方法的优秀剖析器的一个例子是RotateRight/Zoom。祝你好运。