[C#] System.Collections.Generic 中的 List 優化?

  • 2958
  • 0

摘要:[C#] System.Collections.Generic 中的 List 優化?

剛剛在追 NGUI 的動態字型時,

發現了一個蠻有趣的東西,

就記錄一下,

就是 List,

我們知道 C# 有提供一些 STL 的操作,

比如 List 就是其中一種,

和 C++ 的 Vector 一樣,

雖然都是動態的,

但都是不夠的時候, 

再產生新的去搬移資料過去,

那如果一開始就多產生一些呢?

會不會讓大資料的效能變好呢?

NGUI 中的 Better 就是基於這種想法來做優化

而寫了一個 BetterList 出來做使用

[網址]

http://www.cnblogs.com/FEAUOR/p/3703710.html

[內容]

BetterList不支持任何集合接口,功能簡單,擴展功能只有一個排序。排序用的是冒泡。
 
先開門見山,​​放上測試結果。1是BetterList,2是List<T>。都是萬級別的A​​dd和Remove操作測試。的確是比較快。
 
 
NGUI BetterList的最小容量是32,List<T>的最小容量是4.
 
分配新空間方便,List<T>是調用Array.resize分配新空間,其內部還是CopyTo。而NGUI BetterList直接調用CopyTo
 
BetterList 的程式碼如附件, 有需要的下載回去就可以了, 用法和 List 一樣~

BatterList.zip

======

鸞鳳翎毛雨壓垂,

此時應被雀輕欺,

忽朝一日雲霄霽,

依舊還教振羽衣。

======

歡迎轉錄文章,

但記得保留網址和作者名稱~