我如何衡量 CLR 在方法的 JIT 编译中所花费的时间?
How may I measure the time taken by the CLR in JIT compilation of a method?
.NET Framework 是否为我们提供了 API 来大致衡量 JIT 编译器在编译方法时所花费的时间?
目前,我使用的是以下几种组合,虽然有帮助,但需要更令人满意和可靠的方法。
我在方法的开头和结尾写了profile语句,运行第一次写,注意时间。
然后我再做一次,注意执行时间的差异。
但是,这仅适用于纯函数的纯计算方法。任何一种 side-effect 都可能以某种方式扭曲这些测量值。
我看标题下的性能计数器.NET CLR Jit.
您可以从 here.
下载 Microsoft 的 CLRProfiler 的源代码
分析器使用 JITCompilationStart/JITCompilationFinished 方法进行分析等。您可以查看代码并根据需要进行扩展。
.NET Framework 是否为我们提供了 API 来大致衡量 JIT 编译器在编译方法时所花费的时间?
目前,我使用的是以下几种组合,虽然有帮助,但需要更令人满意和可靠的方法。
我在方法的开头和结尾写了profile语句,运行第一次写,注意时间。
然后我再做一次,注意执行时间的差异。
但是,这仅适用于纯函数的纯计算方法。任何一种 side-effect 都可能以某种方式扭曲这些测量值。
我看标题下的性能计数器.NET CLR Jit.
您可以从 here.
下载 Microsoft 的 CLRProfiler 的源代码分析器使用 JITCompilationStart/JITCompilationFinished 方法进行分析等。您可以查看代码并根据需要进行扩展。