0

如果我使用allocate_aligned在託管共享內存中分配對齊的內存塊,是否可以保證在其他進程中共享時該分配將具有相同的對齊方式?該文檔清楚地表明,基地址可能會有不同的映射,當然,它似乎沒有說明對齊方面的任何內容。boost :: interprocess - allocate_aligned - 在所有進程中保證相同的對齊?

我已經運行了一個似乎表明對齊方式相同的實驗,但這可能只是運氣不佳,所以我希望得到更可靠的預期行爲確認。 (常識說它應該是相同的對齊方式,否則會嚴重限制共享內存中allocate_aligned的用處,但我確實需要的不僅僅是對常識的吸引力。)

回答

1

是的,除非您需要更多出於某種奇怪的原因,頁面對齊。

基地址可能映射不同,但這種映射是使用頁面粒度完成的。這意味着通用架構上的4K對齊。

+0

謝謝 - 這是令人鼓舞的。我也剛剛意識到,如果我使用一個普通的'shared_memory_object'和'mapped_region',那麼我就可以爲整個分配獲得頁面對齊方式,所以我可能只需要這樣做(我只需要16個字節的對齊方式,用於SIMD的東西)。 –

相關問題