实现行级评测

Implementing line-level profiling

本文关键字:评测 实现      更新时间:2023-10-16

上周左右,我一直在玩CLR评测API,这是夏天的一个热门项目。

我开始思考ANTS和DotTrace是如何实现行级评测的。我在评测API中看不到任何与此相关的内容,所以我认为他们有一些专有的东西。

我正在寻找他们如何实现这一点的指针或想法。

当代码被JIT’ed时,他们会注入MSIL代码吗?

CLR评测API支持在Enter&休假级别。这可以使用ICorProfilerInfo::SetEnterLeaveFunctionHooks 来完成

为了在更精细的水平上进行跟踪,需要对IL进行编织。您可以使用这些开源评测器代码作为参考:

  • OpenCover
  • PartCover

两者都在JITCompilationStarted回调期间编织代码。