首页 > > > dpdk 二次开发之C和C++兼容性及性能问题
公司项目代码是使用封装的dpdk库,上层业务处理(解析数据包,会话重组,数据结果合并等业务)都采用C++语言实现
在NUMA模式下,如果想实现高性能,必然要保证CPU和CPU访问的内存属于同一个Socket 节点
如果项目是纯c代码,将malloc函数替换成rte_malloc_socket函数即可在指定的socket节点上申请内存空间,
但是在C++代码中却不能这样改动!!!
默认情况下,C++ 的new操作符来分配内存空间会自动调用类的构造函数,那么修改new为rte_malloc后将不会主动调用类的构造函数,释放内存时也不会主动调用类的析构函数,请教下各位大佬有什么可行的方法吗?
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29296549/viewspace-3152816/ ,如需转载,请注明出处,否则将追究法律责任。