创建一个元素数组,但每个数组在页面和缓存边界上对齐?

问题描述 投票:0回答:0

我有一个模板化结构数组,称为

Block
:

using Block = std::array<T, SIZE>;    // SIZE is a constant

我需要为多个

Block
s分配内存,这个数字只有在运行时才知道。

每个块由一个线程使用。我希望分配内存以防止

Block
/
T
元素跨越页面和缓存边界。

我找到了Linux的

getpagesize()
但是我该如何分配内存来实现对齐呢?

我不确定如何实现填充,因为

Block
使用
std::array
并且页面大小仅在运行时已知。

这不需要移植,代码只会在 Linux 上运行。

c++ linux memory-management x86 paging
© www.soinside.com 2019 - 2024. All rights reserved.