如何在特定的NUMA内存节点上实例化C ++对象?

时间:2014-04-17 20:20:16

标签: c++ numa

简单C代码可以使用libnuma库在NUMA系统中的特定内存节点中分配内存。例如,可以使用以下功能完成:

void *numa_alloc_onnode(size_t size, int node)

如何在某个内存节点中实例化一个类?我能想到的一种方法是:

numa_set_membind(<nodemask>);
o = new Object();
numa_set_localalloc();

这会有用吗?

1 个答案:

答案 0 :(得分:3)

Placement new正是您要找的。例如:

void *blob = numa_alloc_onnode(sizeof(Object), ...);
Object *object = new(blob) Object;