如下Boost文檔:升壓pool_allocator內存池的行爲澄清
注意
由這個分配器使用的基礎
singleton_pool
構造一個永遠不會被釋放池實例。這意味着分配器分配的內存在main()
完成後仍然可以使用,但可能意味着某些內存檢查程序會抱怨泄漏。
我感到困惑,因爲我檢查了代碼,並且singleton_pool
似乎仍然只在當前進程的堆上創建。即如果這個進程被操作系統殺死了,這個池會被釋放嗎?那麼上面的註釋僅僅意味着如果一些守護進程線程繼續運行,並且這個池在main()之後仍然可用?或者它實際上意味着即使在整個過程被殺後該池也不會被釋放?
在我看來,pool_allocator
和fast_pool_allocator
都使用相同的機制來分配內存,即從這樣的singleton_pool
單例中分配內存。但是,該說明未針對fast_pool_allocator
指定。我認爲他們兩人的行爲在上面的這樣一個註釋中是一樣的。我對麼?
請幫忙。謝謝。
「主完成後」但程序退出之前...主要還有一些事情要做。但是當程序死亡時(當然你的操作系統會處理它,而不是一些有限的嵌入式平臺),內存當然會返回到操作系統。 –
@MarcGlisse就是這樣?我認爲有一些我沒有掌握的黑魔法...... D'or。 –
@MarcGlisse請記住,如果寫作答案,所以我可以接受謝謝:) –