我有一个模板化结构数组,称为
Block
:
using Block = std::array<T, SIZE>; // SIZE is a constant
我需要为多个
Block
s分配内存,这个数字只有在运行时才知道。
每个块由一个线程使用。我希望分配内存以防止
Block
/T
元素跨越页面和缓存边界。
我找到了Linux的
getpagesize()
但是我该如何分配内存来实现对齐呢?
我不确定如何实现填充,因为
Block
使用 std::array
并且页面大小仅在运行时已知。
这不需要移植,代码只会在 Linux 上运行。