摘要:[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>。都是萬級別的Add和Remove操作測試。的確是比較快。
NGUI BetterList的最小容量是32,List<T>的最小容量是4.
分配新空間方便,List<T>是調用Array.resize分配新空間,其內部還是CopyTo。而NGUI BetterList直接調用CopyTo
BetterList 的程式碼如附件, 有需要的下載回去就可以了, 用法和 List 一樣~
======
鸞鳳翎毛雨壓垂,
此時應被雀輕欺,
忽朝一日雲霄霽,
依舊還教振羽衣。
======
歡迎轉錄文章,
但記得保留網址和作者名稱~