[转载]使用.net 2003中的ngen.exe编译.net程序。
来源:互联网 发布:mac的icloud在哪里 编辑:程序博客网 时间:2024/06/05 17:48
ngen.exe程序为.net 2003自带,
在:/windows/microsoft.net/framework/v1.1.4322目录下ngen.exe
ngen能把.net框架的东西编译成机器码....
网友:Visual Studio .NET 2003程序的运行速度怎么样,我有一个感觉,Visual Studio .NET 2002的程序运行的速度要比VS6要慢,所以担心运行速度要比Visual Studio .NET 2002要慢,会有这种问题吗?
曹严明:Visual Studio .NET 2002和Visual Studio .NET 2003开发的程序,都需要运行在.NET的Framework之上,你如果编译出中间代码,然后再运行的话,你感觉到跟原来的VS6.0肯定要慢一些。如果你把它编译成本地代码,我们有一个ngen工具,可以把它编译成机器代码,那样的话就没有任何区别了。
发言人:Jan Gray
Microsoft CLR Performance Team
观点:我还应该提一下 NGEN,这是一种“超前的”工具,可以将 CIL 编译为本机代码程序集。尽管利用 NGEN 编译程序集在当前并不会对执行时间造成什么实质性的影响(好的或坏的影响),却会使加载到许多应用程序域和进程中的共享程序集的总工作集减少。(操作系统可以跨所有客户端共享一份利用 NGEN 编译的代码,而实时编译的代码目前通常不会跨应用程序域或进程共享。
出处:http://www.csdn.net/develop/article/18/18547.shtm
作者:命令行环境学习C#指南 visitant(原作)
观点:Ngen.exe: native image generator
Compiles an assembly to native code and installs a native image in the local assembly cache. That native image is used each time you access the original assembly, even though the original assembly contains MSIL. If the runtime can't locate the native image,it falls back on JIT compilation. Here are some examples:
ngen foo.exe
ngen foo.dll
出处:微软官方聊天室
Ming_MVP : 今天的聊天主题是:Common Language Runtime
Ming_MVP : 由于时间和具体技术问题的关系,可能有些问题我们不能马上回答您,请您谅解。另外,不能回答的问题,请张贴到我们的新闻组(msnews.microsoft.com)
[Q] 请问,是否可以直接将C#或VB.NET编译成本地代码?如果可以,怎么做?
[A] 使用NGEN.EXE可以做到,但是编译之后的native代码仍然需要CLR的支援才能运行,而性能会受到影响。
[Q] 如果使用了NGEN生成后还是要CLR支援,那么NGEN有什么用呢?
[A] NGEN可以较少程序的启动WorkSet,具体说,程序启动速度会比较快,这在UI程序里是很重要的。
[Q] 既然是“本地代码=",为何仍要CLR的支持?能不能简单说一下NGEN的简单用法?
[A] 本地代码只是你的Assembly的编译版本,诸如类库仍然需要的,而且如果程序用到其他Assembly的话仍然需要JIT编译。
[Q] JIT里有几个选项(Normal,Pre-JIT,Zapped),其实是在哪里设置的?他们分别具体代表什么?
[A] Normal JIT应该是指普通的Assembly,Pre-JIT应该是指NGEN生成的native影像。
出处:http://www.zdnet.com.cn/developer/study/story/0,2000081626,39032784,00.htm
发言人:Jim Miller,公共语言运行时首席项目经理
观点
:缺省情况下,在.NET框架上运行的代码都是即时(JIT)编译的。就是说,在代码运行的时候,假如编译器首次遭遇特定的方法(method),那么某一块代码将从MSIL(微软中介语言)翻译为x86机器指令。所产生的x86指令则会被存储起来供应用程序在执行期间使用。这样,如果应用程序再次调用该方法,处理器就会直接跳到对应的x86指令而无需重新编译 MSIL。一旦大多数方法都被即时编译,则JIT编译还没有被调用的不常用方法的开销几乎可以忽略不计。
在程序开始运行的时候,此时,应用程序大多数或者所有的方法都是首次提交给JIT编译器,应用程序的性能自然会受到一定程度的冲击。为此,我们又为代码提供了可选择的pre-JIT (也称为本机映像生成器:NGEN)。这种技术将在运行时之前把MSIL翻译为x86指令,从而有效地避免了程序启动的延迟现象。简而言之,如果程序的启动时间成为一个问题,那么你不妨考虑对程序代码进行pre-JIT编译。
- [转载]使用.net 2003中的ngen.exe编译.net程序。
- [转载]使用.net 2003中的ngen.exe编译.net程序
- .NET Framework 工具 - 本机映像生成器 (Ngen.exe)
- 使用ASP.NET 编译工具 (Aspnet_compiler.exe)隐藏页面文件
- .Net中的反射使用入门(转载)
- 在.Net中調用.exe 程序
- .net exe 程序读写配置文件
- 程序安装.net服务(不使用InstallUtil.exe)
- C#程序安装.net服务(不使用InstallUtil.exe)
- C#程序安装.net服务(不使用InstallUtil.exe)
- 程序安装.net服务(不使用InstallUtil.exe)
- .net 中,使用c# 语言 ,执行exe程序。
- .NET Framework NGEN 导致开机网络连接启动变慢
- .NET程序编译原理
- .NET中的动态编译
- .NET中的动态编译
- .Net中的条件编译
- .NET中的动态编译
- Creating User Controls
- Creating the Northwind Solution
- 初识EJB
- .Net开发,屏蔽浏览器弹出广告的方法。
- 我们总在比较软件,google talk真是“耗时耗力“,我用gaim了
- [转载]使用.net 2003中的ngen.exe编译.net程序。
- ADO.net事务处理方法。
- 压缩Access数据库的方法。
- 删除讨厌的ie弹出广告木马NetMeting
- VB中使用WMI获取系统硬件和软件有关信息
- .NET中实现"关机/休眠/重启/注销"的类
- System.Net.Sockets的使用方法示例。
- 词评节选
- 九阴真经全文(转载)