本地代码生成器:NGen.exe

来源:互联网 发布:网络上最难读的词语 编辑:程序博客网 时间:2024/05/16 10:23

 NGen.exe工具能在两种情况下发挥重要作用:

1.加快应用程序的启动速度 运行NGen.exe能加速启动速度,因为代码已经编译成本地代码,不一定非要在运行时进行编译。

 

2.减小应用程序的工作集 如果知道一个程序集将同时加载到多个进程或APPDomain中,那就对该程序集运行NGen.exe,可以减小应用程序的工作集。因为NGen.exe将IL编译成本地代码,并将输出保存到一个单独的文件中。该文件可以被同时内存映射到多个进程地址空间,允许代码共享。并不是每个进程或APPDOMAIN都需要它自己的代码副本。

 

 

使用NGen.exe生成的文件还是存在几个问题:

1.没有知识产权保护  : 在运行是CLR要求访问程序集的元数据(目的是使用像反射和序列化这样的功能),这就要求同时发布包含IL和元数据的程序集。

 

2.NGen生成的文件可能失去同步

 

3.较差的加载时性能(重定位基址/绑定) 

 

4.较差的执行时性能

 

 

对于服务端的应用程序来说,NGen.exe发挥的作用并不大,有时甚至毫无用处,这使因为只有第一个客户请求才会影响到性能,后续的所有客户端请求都能以全速运行,除此之外,对于大多数服务器应用程序来说,由于只需要代码的一个实例,所以无法从工作集的缩小中获得任何好处。

原创粉丝点击