【发布时间】:2013-07-16 10:23:03
【问题描述】:
上周左右我一直在使用 CLR Profiling API,作为夏季的宠物项目。
我开始思考 ANTS 和 DotTrace 如何实现行级分析。我在 Profiling API 中看不到任何与此相关的内容,所以我认为他们有一些专有的东西。
我正在寻找有关他们如何实现这一点的指针或想法。
当代码被 JIT'ed 时,他们会注入 MSIL 代码吗?
【问题讨论】:
上周左右我一直在使用 CLR Profiling API,作为夏季的宠物项目。
我开始思考 ANTS 和 DotTrace 如何实现行级分析。我在 Profiling API 中看不到任何与此相关的内容,所以我认为他们有一些专有的东西。
我正在寻找有关他们如何实现这一点的指针或想法。
当代码被 JIT'ed 时,他们会注入 MSIL 代码吗?
【问题讨论】:
开箱即用的 CLR 分析 API 支持仅在进入和离开级别进行跟踪。这可以使用ICorProfilerInfo::SetEnterLeaveFunctionHooks来完成
为了进行更精细的跟踪,需要对 IL 进行编织。您可以使用这些开源分析器代码作为参考:
JITCompilationStarted 回调期间的两个编织代码。
【讨论】: