程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#泛型的性能優勢,

C#泛型的性能優勢,

編輯:C#入門知識

C#泛型的性能優勢,


  我寫東西一向追求短小精悍,就不放代碼去驗證的,只說結論,並會與Java泛型做對比。有不對之處還望指出。

  泛型作為一個在C#2.0中就引入的特性,也是C#的重要特性之一,我經常看到有人討論泛型帶來的便捷性和(一定程度上的)安全性,卻很少見有人說泛型的性能優勢,要麼點到即止要麼泛泛而談說得太復雜——可能僅僅是因為我孤陋寡聞吧……

  好了,廢話不說了,以下是結論:

 

  如果你要用一個ArrayList add一個byte,我們看看會發生什麼。

  假設在一個32位CLR上,對對象進行裝箱要消耗8字節,用4字節存儲數據(因為要向上取整),還有4字節是引用——這就用了16字節了。而如果使用List<byte>,因為類型參數已經確定,每一個byte只會產生1字節用來儲存。

  再來看JAVA的泛型……JAVA大家都知道了……因為類型擦除,泛型沒有什麼性能優勢,還是相當於一個普通的ArrayList,要對所有類型進行類似C#中的“裝箱”,唯一的好處就是安全性了。

 

  一路寫下來好像沒什麼好說的……為什麼要說這個呢,請看類標題。我有一個不成熟的樂趣就是吹.NET黑JAVA,突然想起一點就記下來了……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved