c# List內存分配

c# 內存分配

當List<T>對象的Item元素數量超過了Capacity的數量時,List<T>對象會重新申請一塊大小是原來Capacity的兩倍的內存空間,然後將當前所有Item元素以及待添加元素複製到新的內存空間中。


知道了內存分配的原則,接下來就得根據這些原則來採用最優的方法保證有限的內存空間能得到合理的運用。歸納起來主要有如下你點:
1.當實例化一個List<T>對象時,如果能預知其Item元素的大致個數,應該在實例化一個List<T>對象的時候設置其Capacity值爲接近於Item元素個數的最小值。這樣的話可以避免在像List<T>中添加元素的時候,不斷的申請內存與元素的複製。


2.當由於不斷的調用Remove方法而導致Item元素的個數遠遠小於Capacity,就會造成內存的浪費。此時可以調用TrimExcess方法釋放多餘的內存。

3、當沒有設置Capacity時候,list第一次分配的Capacity大小爲4



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章