Visual c++ 创建新的.Net探查器Api 我是.NET Prror和VisualC++中的一个新程序员,

Visual c++ 创建新的.Net探查器Api 我是.NET Prror和VisualC++中的一个新程序员,,visual-c++,profiling,Visual C++,Profiling,我读了很多关于.Net评测的论坛和博客,我有这个问题 我的探查器应用程序必须是非托管代码,或者我可以在应用程序中使用.Net中的某个类?我必须用MFC或..创建ATL的项目类型是什么 另一个问题是如何注册我的探查器dll文件,使我的计算机的每个应用程序都使用此探查器 重新写入方法IL的最佳情况是什么(输入profiler或JITCompilationStarted的方法) 如何获取旧方法的输入变量并发送到新方法 如何更改属性或整个类的IL 我想要更改DLL的所有日期时间格式,我想我必须在JITC

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

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

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

重新写入方法IL的最佳情况是什么(输入profiler或JITCompilationStarted的方法)

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

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


我想要更改DLL的所有日期时间格式,我想我必须在JITCompilationStarted中搜索这些方法的名称,然后重写这些方法,你们有更好的解决方案吗?非常感谢。

您想试试这个很好。我建议你意识到这一点,并努力加以改进

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

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


采用这种方法的优秀分析器的一个示例是。祝你好运。

这可能会对你有所帮助:谢谢你的回答,但我不完全明白。此链接有问题,请更正!2.如何在COM应用程序中使用堆栈?3.我的分析器想在JIT编译之前更改任何关于日期时间的函数!如何使用堆栈更改编译?4.我的应用程序是windows而不是linux!再次非常感谢。@daniel:1。我不确定这两个链接都有什么问题。3.堆栈采样不需要任何关于日期/时间的信息。4.我只是以Zoom为例——堆栈采样可以在任何环境下工作。2.我帮不了你。各种IDE可以“暂停”并获得调用堆栈,因此我假设有一种方法。