到目前为止,我记得第二次调用时函数是JIT'd。
Main方法怎么样?里面的代码是JIT'd吗?
如果我发现了一些代码,我应该把它包装在一个函数中吗?
答案 0 :(得分:6)
所有.NET(MSIL)代码必须在执行之前进行JIT(编译为本机代码)。
你可能指的是,一旦代码被JIT化,它就会被缓存。 JIT的开销仅发生一次。如果您想在没有JIT开销的情况下执行基准测试,则必须“预热”您的基准测试,或者使用NGEN永久编译MSIL。
答案 1 :(得分:3)
回答旁边的问题:
如果我发现一些代码,应该 我把它包装在一个函数中?
这可能是关于测量某些代码的性能,其中通常的建议是将其放在方法中,并在启动定时循环之前至少调用一次该方法。这样就可以避免通常在第一次调用方法时产生的JIT开销。
答案 2 :(得分:1)