【发布时间】:2010-09-29 09:32:18
【问题描述】:
我记得该函数在第二次调用时是 JIT 的。
Main 方法呢?里面的代码会被 JIT 处理吗?
如果我测量一些代码块,我应该把它包装在一个函数中吗?
【问题讨论】:
我记得该函数在第二次调用时是 JIT 的。
Main 方法呢?里面的代码会被 JIT 处理吗?
如果我测量一些代码块,我应该把它包装在一个函数中吗?
【问题讨论】:
所有 .NET (MSIL) 代码都必须经过 JIT 处理(编译为本机代码)才能执行。
您可能指的是,一旦代码被 JIT 化,它就会被缓存。 JIT'ing 的开销只发生一次。如果您想在没有 JIT 开销的情况下执行基准测试,则必须“预热”您的基准测试,或者可能使用 NGEN 永久编译 MSIL。
【讨论】:
回答附带问题:
如果我测量一些代码,应该 我把它包装在一个函数中?
这大概是关于测量某些代码的性能,通常的建议是将其放在一个方法中,并在开始计时循环之前至少调用该方法一次。这样可以避免第一次调用方法时通常会产生的 JIT 开销。
【讨论】:
【讨论】: