[转载]使用.net 2003中的ngen.exe编译.net程序

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编译。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Redis实现分布式锁实战

背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问&#x…

数据分析 绩效_如何在绩效改善中使用数据分析

数据分析 绩效Imagine you need to do a bank transaction, but the website is so slow. The page takes so much time to load, all you can see is a blue circle.想象您需要进行银行交易,但是网站是如此缓慢。 该页面需要花费很多时间来加载,您只能看…

隐私策略_隐私图标

隐私策略During its 2020 Worldwide Developers Conference, Apple spent time on one of today’s hottest topics — privacy. During the past couple of years, Apple has been rolling out various public campaigns aiming to position itself as a company that respect…

Java中的数组

一、数组的定义type[] arrayName;type arrayName[]; 推荐第一种 二、数组的初始化 含义:所谓的初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值 (1)静态初始化:arrayName new type[…

您一直在寻找5+个简单的一线工具来提升Python可视化效果

Insightful and aesthetic visualizations don’t have to be a pain to create. This article will prevent 5 simple one-liners you can add to your code to increase its style and informational value.富有洞察力和美学的可视化不必费心创建。 本文将防止您添加到代码中…

用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码

用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码。也就是说,程序集在打包时是连同CLR一起打包的。在客户端的机器上,CLR一行行的读取IL,在读取每行IL时,CLR利用JIT编译器将IL编译成本地的CPU指令。若要节…

figma 安装插件_彩色滤光片Figma插件,用于色盲

figma 安装插件So as a UX Designer, it is important to design with disabilities in mind. One of these is color blindness. It is important to make sure important information on your product is legible to everyone. This is why I like using this tool:因此&…

服务器运维

1.服务器和网站漏洞检测,对Web漏洞、弱口令、潜在的恶意行为、违法信息等进行定期扫描;代码的定期检查,漏洞检查及服务器安全加固 2.服务器数据备份,包括网站程序文件备份,数据库文件备份、配置文件备份,如…

产品观念:更好的捕鼠器_故事很重要:为什么您需要成为更好的讲故事的人

产品观念:更好的捕鼠器重点 (Top highlight)Telling a compelling story helps you get your point across effectively else you get lost in translation.讲一个引人入胜的故事可以帮助您有效地传达观点,否则您会迷失在翻译中。 Great stories happen…

7月15号day7总结

今天复习了springMVC的框架搭建。 思维导图: 转载于:https://www.cnblogs.com/kangy123/p/9315919.html

关于注意力的问题

问题:一旦持续的注意力分散和精力无法集中成为习惯性动作,这将成为一个严重的问题。 实质:加强有意识的集中程度和持续时间,尽量避免无意识注意对大脑的干扰。 不要浪费注意力。大脑以天为周期,每天注意力是有限的。T…

设计师的10种范式转变

For $250, a business can pay a graphic designer to create a logo for their business. Or, for $10,000 a business can hire a graphic designer to form a design strategy that contextually places the business’s branding in a stronghold against the market it’s…

面向Tableau开发人员的Python简要介绍(第2部分)

用PYTHON探索数据 (EXPLORING DATA WITH PYTHON) And we’re back! Let’s pick up where we left off in the first article of this series and use the visual we built there as a starting point.我们回来了! 让我们从在本系列的第一篇文章中停下来的地方开始&…

GAC中的所有的Assembly都会存放在系统目录%winroot%/assembly下面

是的,GAC中的所有的Assembly都会存放在系统目录"%winroot%/assembly下面。放在系统目录下的好处之一是可以让系统管理员通过用户权限来控制Assembly的访问。 关于GAC本身,上面redcaff_l所引述的一段话正是MSDN中对GAC的定义。GAC全称是Global A…

Mysql(三) Mysq慢查询日志

Mysql Slow Query Log MYSQL慢查询日志是用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。一般建议开启,它对服务器性能的影响微乎其微,但是可以记录mysql服务器上执…

绘制基础知识-canvas paint

先来看一下Canvas Canvas 用来提供draw方法的调用。绘制东西需要4个基本的组建:一个bitmap用来存放像素,一个canvas用来提供draw方法的调用(往bitmap里写入),原始绘制元素(e.g.Rect, Path, text,Bitmap), 一个paint。 …

Python - 调试Python代码的方法

调试(debug) 将可疑环节的变量逐步打印出来,从而检查哪里是否有错。让程序一部分一部分地运行起来。从核心功能开始,写一点,运行一点,再修改一点。利用工具,例如一些IDE中的调试功能,提高调试效率。Python …

设计组合中的10个严重错误可能会导致您丧命

As an agency co-founder and design lead, I’ve been participating in many recruitment processes. I’ve seen hundreds of portfolios and CVs of aspiring designers. If you’re applying for a UI designer position, it is good to have some things in mind and to …

netflix_Netflix的计算因果推论

netflixJeffrey Wong, Colin McFarland杰弗里黄 , 科林麦克法兰 Every Netflix data scientist, whether their background is from biology, psychology, physics, economics, math, statistics, or biostatistics, has made meaningful contributions to the way…

算法题库网站

Google Code Jam(GCJ)Peking University Online Judge(POJ)CodeForces(CF)LeetCode(LC)Aizu Online Judge(AOJ)