虚拟内存和对齐 - 它们如何组合在一起?

Dou*_*rop 8 c++ alignment virtual-memory

我想我理解内存对齐,但令我困惑的是,某些系统上指针的地址将在虚拟内存中,对吧?因此,我所看到的大多数检查/确保对齐似乎只是使用指针地址.物理内存地址不可能不对齐吗?这对SSE这样的问题不是那么有问题吗?

Ant*_*ake 8

物理地址将对齐,因为虚拟内存仅将对齐的页面映射到物理内存(页面通常为4KB).

因此,除非您需要对齐>页面大小,否则物理内存将根据您的要求进行对齐.

在SSE的特定情况下,一切正常,因为您只需要16字节对齐.