Mar*_*ell 16
JIT只按每个方法完成; 它没有JIT一切......只有你需要的东西.当然,这在第一次进入方法时会有一个小但可测量的命中(加上泛型等).NGEN预先做好了这项工作,但必须在相同的平台/架构等基础上完成 - 基本上就是那台机器.这也意味着将其添加到GAC等,这可能需要更高的访问权限.
在许多情况下,JIT很好,特别是如果应用程序长时间打开(例如Web服务器).
尚未提及的一个非常重要的重要区别是本机缓存图像具有"共享代码页",这使通过终端服务或Citrix运行的应用程序的内存占用量产生巨大差异.
理解NGEN的关键在于,虽然它编译代码,但它也将代码页标记为可共享,因此应用程序的多个实例可以共享第一个实例使用的部分内存空间.如果你在终端服务下运行,这真的很有用.
这对于多个用户在单个计算机上使用的应用程序具有非常重要的意义,因为它们跨进程共享内存.如果图像缓存没有得到很好的维护,这可能会导致非常奇怪,难以重现的行为和资源管理问题.
小智 7
来自MSDN ......
Native Image Generator(Ngen.exe)是一种可以提高托管应用程序性能的工具.Ngen.exe创建本机映像,这些映像是包含已编译的特定于处理器的计算机代码的文件,并将它们安装到本地计算机上的本机映像缓存中.运行时可以使用来自缓存的本机映像,而不是使用实时(JIT)编译器来编译原始程序集.
http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=VS.100).aspx
基本上NGen允许您预先JIT并在本地计算机上缓存程序集.这允许更快的启动和有时执行.
归档时间: |
|
查看次数: |
10641 次 |
最近记录: |