【问题标题】:How may I measure the time taken by the CLR in JIT compilation of a method?如何测量 CLR 在方法的 JIT 编译中所用的时间?
【发布时间】:2017-09-28 15:08:56
【问题描述】:

.NET 框架是否为我们提供了一个 API 来大致测量 JIT 编译器在编译方法时所花费的时间?

目前,我使用以下组合,虽然有帮助,但希望获得更令人满意和可靠的方法。

  1. 我在方法的开头和结尾编写配置文件语句,并在第一次运行时记录时间。

    然后我再做一次,并注意执行时间的差异。

    但是,这仅适用于纯函数的纯计算方法。任何一种副作用都可能以某种方式扭曲这些测量值。

  2. 我查看了 .NET CLR Jit 标题下的性能计数器。

【问题讨论】:

  • 是的。分析是a profiler 的工作。已经完成了。
  • @HansPassant 非常感谢。

标签: c# .net clr jit


【解决方案1】:

您可以从here 下载 Microsoft 的 CLRProfiler 的源代码。

分析器使用 JITCompilationStart/JITCompilationFinished 方法进行分析等。您可以查看代码并根据需要进行扩展。

【讨论】:

  • 谢谢。是的,愚蠢的我。多年来一直在使用 CLR Profiler,以及其他商业工具。汉斯在原始问题中的评论让我意识到我只见树木不见森林。
猜你喜欢
  • 2011-01-25
  • 2010-11-18
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 2015-08-28
  • 2017-07-04
  • 1970-01-01
相关资源
最近更新 更多