#include <unistd.h>
(size_t) sysconf(_SC_PAGESIZE);
sysconf(_SC_PAGESIZE)告诉我,我的操作系统和处理器上的内存页面大小为4096。在内存页面中的4096个字节中,有多少可用于数据,有多少是开销/元数据?
我有一个应用程序,我通过将经常访问的指针打包到同一个缓存块中来优化缓存局部性,并且需要知道整个内存页面是否可用,或者我是否会通过填充整个内存页面来查看内存页面边界
答案 0 :(得分:5)
没有元数据。可以使用4096个字节 操作系统确实在某处存储元数据,但它存在于其他页面上,这不应该打扰你。
但是,您是否可以访问内存不依赖于页面大小。如果已分配100个字节,则只能访问100个字节。如果您已分配4096,则可以访问4096。