0
我正在處理某些事情,我更新了許多在Clojure原子中排序的項目。我可以將項目存儲爲矢量或作爲索引映射。這些項目可能有數百萬個附件,所以我想選擇最高效的內存結構。哪些內存使用較少?將項目添加到Clojure原子的長列表或項目到地圖?
我的直覺是,加入新的項目到地圖中使用相比,經過數百次迭代的矢量內存少,但想獲得一個明確的答案:它可以是載體
所以:
["a" "b" ... "y"] -> ["a" "b" ... "y" "z"]
並配有地圖將是:
{0 "a" 1 "b" ... 25 "y"} -> {0 "a" 1 "b" ... 25 "y" 26 "z"}
那麼這將使用較少的內存?
你的問題提到'list'數據類型,嚴格來說它會使用最少的內存,但是你提出的解決方案都不會使用它。 – noisesmith 2015-01-21 15:48:24
我已更新問題以使其更清晰 – Zubair 2015-01-21 16:00:04
我很好奇 - 爲什麼直覺期望地圖會更高效?另外,在GC運行之後,原子的歷史(開始時並不是那麼長)已經滿了,創建一百萬個項目集合並附加到一個空集合一百萬次之間沒有太大差別,所以提出這個問題的方式有點奇怪。 – 2015-01-21 16:52:47