CLR常用簡寫詞語,CLR是公共語言運行庫(Common Language Runtime)和java虛擬機一樣也是一個運行時環境,它負責資源管理(內存分配和垃圾收集),并保證應用和底層操作系統之間必要的分離。CLR存在兩種不同的翻譯名稱:公共語言運行庫和公共語言運行時。
CLR(公共語言運行庫,Common Language Runtime)和Java虛擬機一樣也是一個運行時環境,是一個可由多種編程語言使用的運行環境。CLR的核心功能包括:內存管理、程序集加載、安全性、異常處理和線程同步,可由面向CLR的所有語言使用。并保證應用和底層操作系統之間必要的分離。CLR是.NET Framework的主要執行引擎。[1]為了提高平臺的可靠性,以及為了達到面向事務的電子商務應用所要求的穩定性級別,CLR還要負責其他一些任務,比如監視程序的運行。按照.NET的說法,在CLR監視之下運行的程序屬于“托管的”(managed)代碼,而不在CLR之下、直接在裸機上運行的應用或者組件屬于“非托管的”(unmanaged)的代碼。CLR將監視形形色色的常見編程錯誤,許多年來這些錯誤一直是軟件故障的主要根源,其中包括:訪問數組元素越界,訪問未分配的內存空間,由于數據體積過大而導致的內存溢出,等等。然而,這種對受管理代碼的運行監視是有代價的。雖然當前還不可能精確地得到監視程序運行所需要的開銷,但從當前Beta測試版的性能表現來看,正如Microsoft所承認的那樣,我們可以預料由它導致的性能降低程度至少達到10%。當然,如果監視程序運行能夠將穩定性和可用性提高到一個新的檔次,那么,我們是否仍會懷疑這10%的性能降低是一件壞事?在處理器性能改善方面,摩爾定律已經一再被證明是正確的。既然如此,我們要得到一臺性能增加了10%的服務器要等待多長時間呢。NET提供的公共語言運行庫是一種多語言執行環境,支持眾多的數據類型和語言特性。他管理著代碼的執行,并使開發過程變得更加簡單。這是一種可操控的執行環境,其功能通過編譯器與其他工具共同展現。依靠一種以運行時為目標的編譯器開發的代碼叫做可操控代碼。元數據:為了使運行時環境可以向可操控代碼提供服務,語言編譯器需要產生一種元數據,它將提供在使用語言中的類型、成員、引用的信息。運行時環境使用元數據定位并載入類,在內存中展開對象實例,解決方法調用,產生本地代碼,強制執行安全性,并建立運行時環境的邊界。可操控執行的含義:對象在執行的過程中完全被運行時環境所控制。運行時環境提供以下服務:自動內存管理、調試支持、增強的安全性及與非可操控性代碼的互操作性。條件:1、選擇以運行時為目標的語言編譯器,如VB、C#;2、在組件的輸出類型中使用CLR要求的語言特性。新聞熱點
疑難解答