简体   繁体   English

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

[英]How to instantiate C++ objects on specific NUMA memory nodes?

Simple C code can use libnuma library to allocate memory in specific memory node in a NUMA system. 简单的C代码可以使用libnuma库在NUMA系统中的特定内存节点中分配内存。 For example, it can be done using following function: 例如,可以使用以下功能完成:

void *numa_alloc_onnode(size_t size, int node)

How one instantiate a class in some memory node? 如何在某个内存节点中实例化一个类? One way, I can think of is: 我能想到的一种方法是:

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

Will this work? 这会有用吗?

Placement new is what you are looking for. Placement new就是你要找的。 Example: 例:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM