爲了提高平臺的可靠性,以及爲了達到面向事務的電子商務應用所要求的穩定性級別,CLR還要負責其他一些任務,比如監視程序的運行。按照.NET的說法,在CLR監視之下運行的程序屬於“受管理的”(managed)代碼,而不在CLR之下、直接在裸機上運行的應用或者組件屬於“非受管理的”(unmanaged)的代碼。
CLR將監視形形色色的常見編程錯誤,許多年來這些錯誤一直是軟件故障的主要根源,其中包括:訪問數組元素越界,訪問未分配的內存空間,由於數據體積過大而導致的內存溢出,等等。
然而,這種對受管理代碼的運行監視是有代價的。雖然當前還不可能精確地得到監視程序運行所需要的開銷,但從當前Beta測試版的性能表現來看,正如Microsoft所承認的那樣,我們可以預料由它導致的性能降低程度至少達到10%。當然,如果監視程序運行能夠將穩定性和可用性提高到一個新的檔次,我們可以懷疑10%的性能降低是否還可以稱爲一件壞事……
在處理器性能改善方面,摩爾定律已經一再被證明是正確的。既然如此,我們要得到一臺性能增加了10%的服務器要等待多長時間呢