簡體   English   中英

處理內存,垃圾收集器之類的

[英]Handle memory, garbage collector like

我有一段執行大量內存分配的代碼。

我想知道是否可以實現一種模式來重用以前刪除的內存(因為我建立了許多臨時對象來分配內存,例如int*char*等,但是它可能非常大)。

我的目的是優化,因此即使在使用臨時對象時,我也想重用內存而不是“刪除”它。

可能還不夠清楚,請告訴我,以便我可以發布一些代碼來向您顯示問題。

將臨時對象的創建委托給一個類。

正如Dan所指出的,您需要通過重載該類中的new和delete運算符來實現內存管理器或Pool。

首次調用新內存時分配大塊內存,並將其分成固定大小的塊。 繼續將這些塊用作臨時對象。 調用delete時,只需更新該塊的分配狀態即可。

完成使用臨時對象后,刪除大塊。

我要做的就是確保對象中具有備用指針。 然后,我只是保留以前使用過的對象的鏈接列表,而不是“刪除”,並將其推到列表的前面。 而不是“新”我彈出一。 如果列表為空,那是我創建一個真正的新列表的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM