我正在嘗試使用某些緩存算法,這在某種程度上具有挑戰性。 基本上,它需要分配很多小對象(雙數組,1到256個元素),對象可以通過映射值map[key] = array
訪問。初始化數組的時間可能相當長,一般超過10萬cpu週期。分配/釋放大量小物體的策略
我的意思是總計大約是千兆字節。物體可能需要根據需要彈出/推動,通常在隨機的地方,一次一個物體。一個對象的生命週期通常很長,幾分鐘或更長,但是,對象在編程期間可能會多次分配/釋放。
什麼是避免內存碎片的好策略,同時仍然保持合理的分配釋放速度?
我使用的是C++,所以我可以使用new和malloc。 謝謝。
我知道網站上有類似的問題,Efficiently allocating many short-lived small objects,有些不同,線程安全對我來說不是直接的問題。
我的開發平臺是Intel Xeon,linux操作系統。 理想情況下,我想在PPC linux上工作,但它對我來說不是最重要的。
什麼是平臺?我的意思是,操作系統,CPU架構,編譯器等,這些可能會大大影響答案。 – 2010-03-13 18:51:10