它看起来像这样:
MyType * pMy = my_segment->construct<MyType>(anonymous_instance)();
my_segment->destroy_ptr(pMy);
其中MyType是一些典型的结构并且my_segment是正确构造的boost::interprocess::managed_shared_memory * 比同等结构慢大约 10 倍:
MyType * pMy = new MyType();
delete pMy;
我没想到会这样。我虽然这两种分配算法在实现和性能上应该是相似的。如此巨大的差异是否有充分的理由。
编辑:测试是在大量迭代中进行的。