JIT vs NGen - 有什么区别?

时间:2011-04-02 18:35:20

标签: .net clr jit ngen

5 个答案:

答案 0 :(得分:32)

答案 1 :(得分:16)

答案 2 :(得分:9)

尚未提及的一个非常重要的重要区别是本机缓存图像具有“共享代码页”,这使通过终端服务或Citrix运行的应用程序的内存占用量产生巨大差异。

  

理解NGEN的关键在于,虽然它编译代码,但它也将代码页标记为可共享,因此应用程序的多个实例可以共享第一个实例使用的部分内存空间。如果您在终端服务下运行,这非常有用。

http://blogs.msdn.com/b/morgan/archive/2009/03/07/developing-net-applications-for-deployment-on-terminal-services-or-citrix.aspx

这对于单个计算机上的多个用户使用的应用程序具有非常重要的意义,因为它们跨进程共享内存。如果图像缓存没有得到很好的维护,这可能会导致非常奇怪,难以重现的行为和资源管理问题。

答案 3 :(得分:7)

答案 4 :(得分:3)