[轉載]使用.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.pswp.cn/news/389152.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389152.shtml
英文地址,請注明出處:http://en.pswp.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)