「這是字典中沒有任何壓實支持的實現。」什麼是字典壓縮支持?
這句話就是從這裏取:http://blogs.msdn.com/jaredpar/archive/2009/03/03/building-a-weakreference-hashtable.aspx
我知道jaredpar是成員對這裏的帖子在C#部分。 「字典壓縮支持」究竟是什麼?我認爲這是一種優化或使其更小的方法?但如何(如果這是事實)?
由於
「這是字典中沒有任何壓實支持的實現。」什麼是字典壓縮支持?
這句話就是從這裏取:http://blogs.msdn.com/jaredpar/archive/2009/03/03/building-a-weakreference-hashtable.aspx
我知道jaredpar是成員對這裏的帖子在C#部分。 「字典壓縮支持」究竟是什麼?我認爲這是一種優化或使其更小的方法?但如何(如果這是事實)?
由於
對於該特定交我指的收縮字典以便對於非收集元件的數目更適當的大小。
引擎蓋下最哈希表由大陣列通常指向另一個結構支持諸如鏈表。該數組以初始化大小開始。當被添加到散列表元素的數量超過某一閾值(比方說陣列中元件的數量的70%),哈希表將擴大。這通常涉及創建一個兩倍大小的新數組,並將這些值重新添加到新數組中。
一個的弱引用散列表中的問題/特徵是,隨着時間的推移被收集的元素。隨着時間的推移,這可能會導致一些浪費的空間。想象一下,你添加了足夠的元素來完成這個數組加倍過程。隨着時間的推移,其中一些被收集,現在其餘的元素可以適應前面的數組大小。
這未必是一件壞事,但它是浪費的空間。壓縮是一個過程,在這個過程中,您基本上將散列表的基礎數據結構縮小爲數據的更合適的大小。
非常真實,善於思考。謝謝。 – dotnetdev 2009-04-21 14:24:14