精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

介紹托管程序與非托管程序的區別

開發 后端
本文主要介紹托管程序與非托管程序的概念,以及兩者之間的區別。希望對你有幫助,一起來看。

托管代碼是一microsoft的中間語言,他主要的作用是在.NET FRAMEWORK的CLR執行代碼前去編譯源代碼,也就是說托管代碼充當著翻譯的作用。下面介紹托管代碼非托管代碼。

什么是托管代碼?

托管代碼就是Visual Basic .NET和C#編譯器編譯出來的代碼。編譯器把代碼編譯成中間語言(IL),而不是能直接在你的電腦上運行的機器碼。中間語言被封裝在一個叫程序集(assembly)的文件中,程序集中包含了描述你所創建的類,方法和屬性(例如安全需求)的所有元數據。這個程序集是.NET世界中的一個一站式購物(譯者注:就是程序集具有自描述性)部署單元。你可以拷貝這個程序集到另一臺服務器上部署它--通常來說,這個拷貝的動作就是部署流程中***的一個操作。

托管代碼在公共語言運行庫(CLR)中運行。這個運行庫給你的運行代碼提供各種各樣的服務,通常來說,他會加載和驗證程序集,以此來保證中間語言的正確性。當某些方法被調用的時候,運行庫把具體的方法編譯成適合本地計算機運行的機械碼,然后會把編譯好的機械碼緩存起來,以備下次調用。(這就是即時編譯)

隨著程序集的運行,運行庫會持續地提供各種服務,例如安全,內存管理,線程管理等等。這個程序被“托管”在運行庫中。

Visual Basic .NET和C#只能產生托管代碼。如果你用這類語言寫程序,那么所產生的代碼就是托管代碼。如果你愿意,Visual C++ .NET可以生成托管代碼。當你創建一個項目的時候,選擇名字是以.Managed開頭的項目類型。例如.Managed C++ application。

什么是非托管代碼?

非托管代碼就是在Visual Studio .NET 2002發布之前所創建的代碼。例如Visual Basic 6, Visual C++ 6, 最糟糕的是,連那些依然殘存在你的硬盤中、擁有超過15年歷史的陳舊C編譯器所產生的代碼都是非托管代碼。托管代碼直接編譯成目標計算機的機械碼,這些代碼只能運行在編譯出它們的計算機上,或者是其它相同處理器或者幾乎一樣處理器的計算機上。非托管代碼不能享受一些運行庫所提供的服務,例如安全和內存管理等。如果非托管代碼需要進行內存管理等服務,就必須顯式地調用操作系統的接口,通常來說,它們會調用Windows SDK所提供的API來實現。就最近的情況來看,非托管程序會通過COM接口來獲取操作系統服務。

跟Visual Studio平臺的其他編程語言不一樣,Visual C++可以創建非托管程序。當你創建一個項目,并且選擇名字以MFC,ATL或者Win32開頭的項目類型,那么這個項目所產生的就是非托管程序。

這樣子會導致一些混淆:當你創建一個托管的C++程序,那么構建出來的是一個中間語言程序集和一個擴展名為.exe的可執行文件。當你創建一個MFC程序,構建出來是一個Windows原生代碼的可執行文件,這個文件的擴展名也是.exe。這兩個文件的內部結構是完全不一樣的。你可以用中間語言反匯編器(ildasm)來查看程序集的內部以及中間語言的元數據。如果嘗試用中間語言反匯編器來查看一個非托管可執行文件,那么改反匯編器會告訴你這個可執行文件沒有包含一個合法的CLR頭,所以不能被反編譯。可見,這兩個文件雖然有相同的擴展名,但是它們是完全不一樣的。

原生代碼又是什么呢?

原生代碼這個短語可以用在兩個不同的上下文中。很多人會把原生代碼跟非托管代碼看作是同一個意思:用較老的工具構建的代碼,故意采用Visual C++并使直接運行在計算機上,而且不運托管在運行庫中。這可以是一個完整的程序,或者是一個COM組件,又或者是一個可以被托管代碼利用COM Intero或者平臺調用(PInvoke)所調用的DLL文件,COM Intero或者平臺調用(PInvoke)可以幫助你在遷移到新的技術平臺下依然能重用老代碼的兩個強大工具。

我更愿意說是非托管代碼,因為這強調的是那些不能利用運行庫所提供的服務的代碼。例如在托管代碼中,代碼訪問安全服務可以防止在另一個服務器上裝載的代碼運行特定的操作。如果你的代碼運行的是非托管代碼,那么你沒法利用這樣的保護服務。

原生代碼的另一個意思是描述即時編譯器的輸出,那些實際上運行在運行庫中的機械碼。這些代碼是托管代碼,但是并不是中間語言,而是機械碼。所以不要簡單地假設原生就是等同于非托管。

托管代碼就意味著托管數據?

對于Visual Basic和C#來說,生活是簡單的,因為你沒有其它選擇。當你在那些語言里面聲明一個類,那么這個類的實例會在托管堆中被創建,垃圾收集器(GC)會幫我們管理這些對象的回收。但是在Visual C++中,你有另一個選擇。即使你正創建一個托管程序,你可以決定哪些類是托管類型,哪些類是非托管類型的。

這就是非托管類型:

 

  1. class Foo  
  2. {  
  3. private:  
  4. int x;  
  5. public:  
  6. Foo(): x(0){}  
  7. Foo(int xx): x(xx) {}  
  8. }; 

 

這就是托管類型

 

  1. __gc class Bar  
  2. {  
  3. private:  
  4. int x;  
  5. public:  
  6. Bar(): x(0){}  
  7. Bar(int xx): x(xx) {}  
  8. }; 

 

他們***的區別就是類Bar的定義中有__gc關鍵字。這個關鍵字會給代碼帶來巨大的區別。

托管類型是可以被垃圾回收器所回收的。他們必須要用關鍵字new來創建,永遠都不會在棧中出現。所以下面這行代碼是合法的:

 

  1. Foo f; 

 

但是這一行代碼就是非法的:

 

  1. Bar b; 

 

如果我在堆中創建一個Foo對象,那么我必須要負責清理這個對象:

 

  1. Foo* pf = new Foo(2);  
  2. // . . .  
  3. delete pf; 

 

C++編譯器實際上會用兩個堆,一個托管堆和一個非托管堆,然后通過對new操作符的重載來實現對創建不同類型類的實例,分配不同的內存。

如果我在堆里面創建一個Bar實例,那么我可以忽略它。當沒有其他代碼在使用它的時候,垃圾回收器會自動清理這個類,釋放其占用的資源。

對于托管類型會有一些約束:它們不能實現多重繼承,或者繼承與非托管類型;它們不能用friend關鍵字來實現私有訪問,它們不能實現拷貝構造函數。所以,你有可能不想把你的類聲明為托管類型。但是這并不意味著你不想讓你的代碼成為托管代碼。在Visual C++中,你可以選擇。

 

 

托管和非托管資源,是C#中的事,就不在這討論了。

 

托管代碼與非托管代碼的性能比較

基本上每個人都知道的是,所有.Net語言都將被編譯成為一個叫做IL匯編的中間語言。但是計算機是如何執行這個中間代碼的,卻是很多人不知道,甚至理解錯誤了的。

JIT是.NET程序運行的重要部件之一,全稱是即時編譯器。我剛才說的誤解,就是很多人(絕對不是少數,問了很多c++程序員,10個有9個這種想法)都以為JIT其實就是跟Java VM差不多的東西,是一個Interpreter,在運行時讀取IL匯編代碼,然后模擬成x86代碼(也就是俗稱的虛擬機)。但是事實上,.NET使用的是更為高級的技術。 .Net程序被加載入內存以后,當某段IL代碼被***次運行的時候,JIT編譯器就會將這段IL代碼,全部編譯成本地代碼,然后再執行。這也就是為什么.NET程序***次運行都啟動很慢的原因!

隨.NET庫,微軟還附帶了一個工具,可以事先將.NET程序所有的IL代碼都編譯成本地代碼并保存在緩存區中,這樣一來,這個程序就跟c++編譯的一模一樣了,沒有任何區別,運行時也可以脫離JIT了(這里不要混淆了,這里不是說可以脫離.NET庫,而是說不需要在進行即時編譯這個過程了)。所以,請不要將.NET和Java混為一談,兩個的運行效率根本不是一個等級的!

JIT的優化指的是可以針對本地CPU,在編譯時進行優化。傳統程序在編譯時,為了保證兼容性,通常使用最通用的指令集(比如古老的386指令集)來編譯。而JIT知道CPU的具體類型,可以充分利用這些附加指令集進行編譯,這樣的性能提升是很可觀的。

 

原文地址:http://blog.csdn.net/AtlasHR/archive/2009/05/06/4154387.aspx

【編輯推薦】

  1. ASP.NET網站性能優化 需要考慮哪些方面
  2. 分享.net常見的內存泄露及解決方法
  3. VB.NET下的事件和委托
  4. 探討.NET中的聯合結構
  5. ASP.Net中頁面之間傳參方法
  6. java/.net語言及IDE簡易對比
責任編輯:于鐵 來源: CSDN博客
相關推薦

2010-02-06 17:16:49

C++托管程序

2023-07-07 13:56:54

2023-07-17 11:25:35

.NET程序WinDbgPerfview

2010-01-25 15:55:50

托管C++

2023-06-06 08:47:57

Java版管程編譯器

2023-05-30 16:02:34

云托管云計算自托管

2022-11-15 14:29:18

2013-08-19 17:25:18

.Net托管

2015-02-02 15:46:59

Web應用架構大數據

2009-08-28 16:43:08

AutoCAD托管C#

2023-06-12 11:49:40

網絡交換機局域網

2010-01-06 19:22:43

.NET Framew

2009-04-02 15:21:43

c#IDisposeFinalize

2025-03-20 09:38:50

2017-04-20 10:51:11

互聯網

2009-08-07 13:22:04

服務器托管

2012-08-14 10:01:48

代碼托管

2013-01-29 09:41:27

云托管服務廠商鎖定云構建平臺

2013-08-02 13:32:29

開源代碼代碼托管開源

2009-07-30 14:14:07

非托管COM組件
點贊
收藏

51CTO技術棧公眾號

亚洲精品无人区| 日本午夜精品理论片a级appf发布| 一道本视频在线观看| 香蕉视频国产在线观看| 国产麻豆成人精品| 国内精品久久久久影院优| 中文字幕一区二区人妻在线不卡| 欧美日韩精品免费观看视欧美高清免费大片 | 国产精品久久乐| 夜夜揉揉日日人人青青一国产精品| 国产精品露出视频| 中文在线资源天堂| 国一区二区在线观看| 亚洲欧美日韩中文在线| 国产传媒免费观看| 自拍网站在线观看| 亚洲免费资源在线播放| 欧美精品一区二区三区四区五区| 91成品人影院| 亚洲自拍另类| 欧美精品性视频| 日韩精品无码一区二区三区久久久| 电影一区二区三区久久免费观看| 午夜精品福利一区二区蜜股av| 午夜精品一区二区在线观看| 欧美熟妇交换久久久久久分类| 青青草国产成人99久久| 午夜精品久久久久久久久久久久 | 色哟哟在线观看| 国产毛片精品视频| 国产精品第七十二页| 日韩女优在线观看| 欧美日韩国产在线一区| 在线视频欧美日韩精品| 极品粉嫩小仙女高潮喷水久久 | 金瓶狂野欧美性猛交xxxx| 国产精品色哟哟网站| 免费中文日韩| 手机av免费在线观看| 国产乱国产乱300精品| 国产精品吊钟奶在线| 青青国产在线观看| 国产精品地址| 九九久久精品一区| www日韩在线| 日韩一区自拍| 伊人久久综合97精品| 国产精品亚洲无码| 欧美男gay| 日韩精品中文字幕久久臀| 尤物网站在线观看| 国产精品毛片视频| 精品av综合导航| 国产国语老龄妇女a片| 亚洲电影一区| 精品国精品自拍自在线| 人妻精品久久久久中文字幕69| av日韩久久| 欧美夫妻性生活| 一道本在线免费视频| 国产一区二区三区朝在线观看| 色综合色综合色综合色综合色综合| 激情五月宗合网| 第四色日韩影片| 亚洲一区二区在线免费看| 日韩免费在线观看av| 欧美亚洲天堂| 天涯成人国产亚洲精品一区av| 男女视频网站在线观看| 高端美女服务在线视频播放| 岛国av一区二区三区| 国产精品无码av在线播放| 涩涩视频在线播放| 色94色欧美sute亚洲线路一久 | 高清不卡一二三区| 国产高清在线一区二区| 凸凹人妻人人澡人人添| 97久久超碰精品国产| 欧美理论一区二区| 亚洲欧美视频一区二区| 亚洲欧美视频在线观看| 精品成在人线av无码免费看| 在线手机中文字幕| 欧美综合久久久| 亚洲视频一二三四| 在线精品视频一区| 亚洲精品视频在线观看视频| 成人做爰69片免网站| 忘忧草精品久久久久久久高清| 欧美国产第二页| 黄色片中文字幕| 精品一区二区三区免费观看 | 91爱视频在线| 亚洲天堂久久久久| 成人小视频在线观看| 欧美日韩亚洲在线| 操你啦视频在线| 欧美色欧美亚洲高清在线视频| 国产一二三四在线视频| 亚洲日本视频在线| 一本色道久久88综合日韩精品| 老司机成人免费视频| 国产情侣一区| 亚洲一区二区三区乱码aⅴ| 婷婷五月综合久久中文字幕| 国产精品麻豆99久久久久久| 色综合久久久久无码专区| 欧美亚洲黄色| 日韩激情在线视频| 国产97免费视频| 视频一区二区不卡| y111111国产精品久久婷婷| 国产系列在线观看| 亚洲成在线观看| 欧美午夜aaaaaa免费视频| 狼人精品一区二区三区在线| 日韩中文字幕精品| 亚洲视频 欧美视频| 国产精品18久久久久久vr| 日本高清不卡三区| 成入视频在线观看| 日韩女优av电影| 蜜桃av免费观看| 国产精品嫩草99av在线| 99re视频| 国产在线观看a视频| 色悠久久久久综合欧美99| 99久久久无码国产精品性波多| 97视频精品| 国产精品com| 日韩有码第一页| 亚洲一区二区偷拍精品| av在线网站免费观看| 热久久天天拍国产| 青青草99啪国产免费| 日本黄视频在线观看| 亚洲精品国产无天堂网2021| 黄色小视频免费网站| 欧美精品一区二区三区中文字幕 | 在线视频亚洲欧美中文| 麻豆乱码国产一区二区三区| 在线播放国产一区| 国产日韩欧美制服另类| av观看免费在线| 九九综合九九| 日本免费久久高清视频| 视频污在线观看| 精品久久久久久久久久| av鲁丝一区鲁丝二区鲁丝三区| 亚洲香蕉网站| 国产精品入口免费| 国产第一页在线| 亚洲第一男人av| 国产午夜精品无码| av一二三不卡影片| 国产美女三级视频| 嫩草影视亚洲| 国产精品免费一区| 欧美69xxxx| 欧美一区二区大片| 久草免费新视频| www.亚洲国产| 999香蕉视频| 日本久久一二三四| 91精品久久久久久久久久| 免费在线观看黄| 日韩视频在线观看一区二区| 免费视频网站www| 成人永久aaa| 日韩精品一区二区三区久久| 国产欧美久久一区二区三区| 国产日韩欧美视频在线| 成年人黄视频在线观看| 欧美精品一区二区三区视频| 超碰超碰超碰超碰| 国产精品网站一区| 久久人人爽人人片| 国产日韩综合| 五月天亚洲综合| 日韩一级特黄| 久久久久久久久亚洲| 欧美色18zzzzxxxxx| 欧美自拍丝袜亚洲| 久久成人在线观看| 久久久欧美精品sm网站| 一二三av在线| 最新国产乱人伦偷精品免费网站| 日韩av一级大片| 国产精品久久免费视频| 97色伦亚洲国产| 91短视频版在线观看www免费| 欧美一区二区三区四区久久| 国产午夜在线播放| 国产精品视频一二三区| 一级黄色免费视频| 奇米一区二区三区av| 久操手机在线视频| 国产一区99| av成人午夜| 全球最大av网站久久| 欧美激情亚洲精品| jizz在线观看中文| 亚洲精品一区二区在线观看| 正在播放木下凛凛xv99| 午夜影院久久久| 四虎地址8848| 91视频国产观看| 欧美日韩理论片| 天堂在线一区二区| 国产乱子伦精品无码专区| 成人女性视频| 久久精品aaaaaa毛片| 国产视频网站一区二区三区| 欧美专区在线播放| 大香伊人久久| 久久国产精品久久精品| 都市激情在线视频| 亚洲精品久久久久国产| 国产成人精品毛片| 欧美日韩日本视频| 国产一区二区视频网站| 亚洲一区二区三区四区在线观看| 制服丨自拍丨欧美丨动漫丨| 91免费看片在线观看| 国模大尺度视频| 九九**精品视频免费播放| 久久精品99国产| 日韩视频一区| 日本男女交配视频| 伊人色**天天综合婷婷| 亚洲欧洲久久| 欧美一区二区三区激情视频| 久久久福利视频| 日韩av系列| 国产嫩草一区二区三区在线观看| 精品亚洲a∨一区二区三区18| 国产精品日韩在线一区| 免费观看成人性生生活片 | 99精品国产九九国产精品| 国产精品久久久久久一区二区| 亚洲黄色免费看| 51ⅴ精品国产91久久久久久| a毛片不卡免费看片| 久久99热精品这里久久精品| av在线网址观看| 美女黄色丝袜一区| 肉体视频在线| 欧美激情在线观看视频| 欧美人与性动交α欧美精品济南到| 少妇av一区二区三区| 成年人在线视频| 尤物精品国产第一福利三区| 成人免费高清在线播放| 在线观看久久av| 免费av毛片在线看| 欧美成人免费观看| 欧美6一10sex性hd| 国内揄拍国内精品| 久九九久频精品短视频| 国产成人精品日本亚洲| 看片一区二区| 91精品免费| 免费看久久久| 欧美一区二区三区四区在线观看地址| 视频一区欧美| 亚洲日本精品一区| 欧美99久久| 青青草成人免费在线视频| 午夜一级久久| 午夜久久福利视频| 粉嫩一区二区三区在线看| 亚洲精品乱码久久久久久久| 久久久久久久久岛国免费| 国产一二三四视频| 亚洲综合精品久久| 中文字幕亚洲乱码熟女1区2区| 欧美三级日韩三级国产三级| 国产福利小视频| 日韩精品在线观看一区| 777电影在线观看| 欧美夫妻性视频| 欧美××××黑人××性爽| 成人黄色av网站| 欧美三级电影在线| 亚洲欧洲精品在线观看| 日韩一级在线| 免费一区二区三区在线观看| 波多野结衣在线aⅴ中文字幕不卡| 无码h肉动漫在线观看| 亚洲视频一区在线| 国产一级在线观看视频| 色菇凉天天综合网| 国产一区二区三区视频免费观看| 亚洲第一男人av| 国产免费a∨片在线观看不卡| 大胆人体色综合| 日本不卡1234视频| 亚洲自拍高清视频网站| 精品视频在线你懂得| 日本一区高清不卡| 精品动漫3d一区二区三区免费版 | 日韩欧美激情四射| 毛片免费在线播放| 久久天天躁夜夜躁狠狠躁2022| 日本伦理一区二区| 国产精品一区二区三区久久久 | 久久xxxx精品视频| 中文字幕免费高清在线| 国产美女精品在线| 性色av蜜臀av色欲av| 亚洲美女少妇撒尿| 五月激情丁香网| 亚洲第一区在线| 欧美黄色激情| 国产精品99久久久久久人| 亚洲国产一区二区三区网站| 欧美日本国产精品| 中文字幕日韩一区二区不卡| 欧美一级在线看| 国产一区二区三区香蕉| 极品蜜桃臀肥臀-x88av| 亚洲成av人片| 肥臀熟女一区二区三区| 中文字幕精品www乱入免费视频| 午夜dj在线观看高清视频完整版 | 伊人久久亚洲| 亚洲日本无吗高清不卡| 亚洲免费影视| mm131亚洲精品| 精品午夜久久福利影院| 91精彩刺激对白露脸偷拍| 一区二区三区视频在线观看| 中文字幕免费观看视频| 亚洲国语精品自产拍在线观看| 久草免费在线观看| 成人a在线观看| 成人羞羞动漫| 日本精品久久久久久久久久| 国产不卡视频在线播放| 小早川怜子一区二区的演员表| 欧美日韩一区二区在线观看| 视频国产一区二区三区| 欧美激情性做爰免费视频| 在这里有精品| 欧美a级黄色大片| 国产凹凸在线观看一区二区| 伊人久久久久久久久久久久久久| 在线视频亚洲一区| av大全在线免费看| 97超级碰在线看视频免费在线看 | 国产欧美精品一区| 精品国产www| 在线观看日韩专区| 亚洲午夜剧场| 影音先锋亚洲视频| 久久久国产精品一区二区中文| 国产精品扒开腿做爽爽| 婷婷久久综合九色综合绿巨人| 嫩草研究院在线观看| 日产精品99久久久久久| 久久精品国产亚洲5555| 日韩a在线播放| 久久亚洲综合av| 日本成人一级片| 色偷偷888欧美精品久久久| 韩国精品主播一区二区在线观看 | 国产福利小视频| 高清在线视频日韩欧美| 国产精品天天看天天狠| 国产偷人视频免费| 久久久精品日韩欧美| 一卡二卡三卡在线观看| 久久天天躁狠狠躁夜夜躁| 久久久国产精品入口麻豆| 黄页免费在线观看视频| 99免费精品视频| 亚洲午夜精品久久久| 免费91麻豆精品国产自产在线观看| 国产精品欧美一区二区三区不卡| 狠狠噜天天噜日日噜| 99亚偷拍自图区亚洲| 免费av中文字幕| xvideos亚洲| 99久久这里有精品| 欧美日韩成人免费视频| 国产色产综合色产在线视频 | 国产一区二区在线观看视频| 欧美精品色哟哟| 亚洲天堂男人天堂| 国产精区一区二区| 亚洲国产精品无码观看久久| 国产欧美一区二区精品忘忧草 | 日韩激情视频在线播放| 毛片电影在线| 99re8这里只有精品| 99久久综合国产精品| 国产裸体无遮挡| 午夜精品免费视频| 自拍偷拍欧美| 国产男女猛烈无遮挡a片漫画 |