的特定區域有什麼事情:如何限制的malloc的內存
- 分配/解除分配/重新分配許多可變大小的對象,而不碎裂(基本上是
malloc
那樣), - 跟蹤所有內存在使用這些分配的網頁,這樣我可以
- 後
mprotect
所有這些網頁,使他們只讀 - 最好沒有任何鎖定 - 所有的訪問將是單線程
- 適用於Linux和OS X,最好與Windows上的某些功能相同?
我想不出用標準內存分配函數做這件事的方法。想到的唯一策略是使用自定義內存池而不是malloc
。所以我的問題是:有沒有辦法做到這一點,沒有自定義malloc
或(如果沒有)關於使用什麼的建議?
我可以換malloc
,並保持它很容易我怎麼保證,一旦我在這些網頁上稱爲mprotect
malloc
不會嘗試開始或之前使用的內存被「捕獲」使用的所有頁面的軌道在一個受影響的頁面內分配的塊結束之後?
你是什麼意思「以後」?該過程終止後?你真的是指「頁面」(虛擬內存)還是「幀」(物理內存)? – Elazar
你只需要分配內存?還是要釋放它?你的用例是什麼? – thejh
正常的malloc不會工作,例如因爲對於小分配,頁面在使用malloc分配的多個事物之間共享 – thejh