c++ - C++ 中的错误共享

标签 c++ multithreading

我有几个类存在高速缓存争用问题,它们是用“new”运算符分配的。我能否以某种方式确保"new"返回与缓存行对齐的地址?

我正在使用 GCC(如果不能移植的话)。

最佳答案

对于 glibc 或 windows CRT 系统,您可以分别使用 memalign_aligned_alloc。你甚至可以使用像 nedmalloc 这样的自定义分配器并让它对齐 block ,这也可以给你一些其他额外的好处。

您还应该用 __attribute__((aligned(64))) 标记它们,以防它们被静态分配。

关于c++ - C++ 中的错误共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9352307/

相关文章:

python - python中的多线程文件下载并在shell中更新下载进度

java - 使用Firebase进行Android开发是否需要自己处理线程?

c# - AutoResetEvent澄清

Java 用线程对单词数组进行排序

c++ - 具有堆成员的对象的二元运算符

c++ - 不同版本的 C++ 库

c++ - 如何在滚动区动态插入项目并在Qt中加载滚动条?

java - 发生某种情况后停止线程 ScheduledThreadPoolExecutor

c++ - void * 转换为 int 语法的问题

c++ - 树结构的泛型遍历