boost::进程间 - allocate_aligned - 保证所有进程的一致性相同

boost::interprocess - allocate_aligned - same alignment guaranteed in all processes?

本文关键字:进程 一致性 aligned allocate boost      更新时间:2023-10-16

如果我使用 allocate_aligned 在托管共享内存中分配对齐的内存块,是否可以保证此分配在其他进程中共享时具有相同的对齐方式?当然,文档清楚地表明基址的映射方式可能不同,但它似乎没有说明对齐方式。

我运行了一个实验,似乎表明对齐是相同的,但这可能只是运气,所以我想得到关于预期行为的更可靠的确认。(常识说它应该是相同的对齐方式,否则它会严重限制共享内存中allocate_aligned的有用性,但我真的需要的不仅仅是诉诸常识。

是的,除非由于某种奇怪的原因,您需要的不仅仅是页面对齐。

基址的映射方式可能不同,但此类映射是按页面粒度完成的。这意味着在通用架构上进行 4K 对齐。