1
2
我们处理这个问题的方法是让空闲列表完全由对齐的节点组成。事实上,对于不同大小的节点,我们有多个空闲列表,因此我们有在2字节、4字节和16字节边界上对齐的列表(我们的平台不关心大于一个SIMD向量的对齐)。任何分配都会向上舍入到这些值之一,并放入一个正确对齐的节点中。因此,sendMsg总是将其数据复制到对齐的节点中。由于您自己编写自由列表,因此可以轻松地执行对齐。 我们还将使用#pragma或declspec强制char buf[MAX#u SIZE]数组至少与队列节点结构内的字边界对齐。 期望 要(比方说)偏离对齐3个字节,您始终可以使用模数检测到它,并将偏移量返回到空闲节点。
|
2
1
我不明白为什么
显示对齐问题-只要每个
|
Jamboree · 在C++17中,分配器是否处理对齐类型? 7 年前 |
afiori · 访问结构并集中结构的第一个字段 7 年前 |
BrodieG · R\u分配和对齐注意事项 7 年前 |
dempzorz · 将任意元素存储在连续内存中 8 年前 |
kgbook · 关于内存对齐的一些困惑 8 年前 |
vandale · x64程序集中的堆栈对齐 11 年前 |