NGen是个什么东西?

来源:互联网 发布:aso优化 app 编辑:程序博客网 时间:2024/04/27 02:37
Ngen.exe:当应用程序安装时,可以将IL-code编译为native-code。在以后运行程序时,就不用再编译IL-code。

有两方面作用:
& 提高程序的启动速度
    由于在安装时,Ngen已经将IL-code转为native-code,省去了运行时编译IL-code的工作。
& 减少应用的工作集
    一个集合同时被加载到多个进程中时,Ngen将IL-code编译成native-code,将native-code保存在一个单独的文件中,这个文件可以通过内存映射的方式被多个进程共享。这样每个进行就不用它的拷贝了。

Ngen也存在一下几个问题
& 非知识产权保护
    NGen转化后的文件中内含IL-code。
& NGen文件过时
    当CLR加载NGen文件时,会将NGen文件特征和当前的执行环境对比。如果某一特征不符合,NGen文件就不会被调用。
    备注:NGen也可以设为update模式,当安装一个新的Net Framework的service
    pack时,NGen文件会与CLR版本保持一致。
& 槽糕的执行效率
    在Ngen编译代码时,不会像JIT编译器那样做太多的假设和优化,这可能导致代码的执行效率反而有所下降。
0 0