本文主要是介绍本地代码生成器:NGen.exe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NGen.exe工具能在两种情况下发挥重要作用:
1.加快应用程序的启动速度 运行NGen.exe能加速启动速度,因为代码已经编译成本地代码,不一定非要在运行时进行编译。
2.减小应用程序的工作集 如果知道一个程序集将同时加载到多个进程或APPDomain中,那就对该程序集运行NGen.exe,可以减小应用程序的工作集。因为NGen.exe将IL编译成本地代码,并将输出保存到一个单独的文件中。该文件可以被同时内存映射到多个进程地址空间,允许代码共享。并不是每个进程或APPDOMAIN都需要它自己的代码副本。
使用NGen.exe生成的文件还是存在几个问题:
1.没有知识产权保护 : 在运行是CLR要求访问程序集的元数据(目的是使用像反射和序列化这样的功能),这就要求同时发布包含IL和元数据的程序集。
2.NGen生成的文件可能失去同步
3.较差的加载时性能(重定位基址/绑定)
4.较差的执行时性能
对于服务端的应用程序来说,NGen.exe发挥的作用并不大,有时甚至毫无用处,这使因为只有第一个客户请求才会影响到性能,后续的所有客户端请求都能以全速运行,除此之外,对于大多数服务器应用程序来说,由于只需要代码的一个实例,所以无法从工作集的缩小中获得任何好处。
这篇关于本地代码生成器:NGen.exe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!