使用mmap
(使用MAP_PRIVATE和MAP_ANONYMOUS)分配內存比使用malloc
有什麼缺點?對於功能範圍的數據,我想無論如何,因此使用的堆棧內存不malloc.
想到的如果我使用mmap而不是malloc分配內存,該怎麼辦?
一個缺點是動態的數據結構,例如樹和鏈表,在那裏你經常需要分配和釋放的小型數據塊。使用mmap
由於兩個原因將會是昂貴的,一個是以4096字節的粒度進行分配,另一個是需要進行系統調用。
但在其他情況下,您認爲malloc
比mmap
更好嗎?其次,我是否高估了動態數據結構mmap
的劣勢?
的mmap
超過malloc
我能想到的一個優勢是,內存被立即返回到操作系統,當你做munmap
,而與malloc/free
,我猜內存uptil數據段斷點是永遠不會回來了,但存放回用。
如果需要,malloc會爲你調用mmap ...只需要堅持malloc。 – Macmade 2012-01-15 13:33:59
另一個缺點是,如果你使用'mmap'調用你的代碼,它就變得不便攜了。 – 2012-01-15 13:35:02
爲什麼讓生活比它需要更復雜? – 2012-01-15 13:37:56