gpt4 book ai didi

c++ - boost 进程间内存分配缓慢

转载 作者:太空狗 更新时间:2023-10-29 23:19:40 31 4
gpt4 key购买 nike

看起来像这样:

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;

没想到会这样。我虽然这两种分配算法在实现和性能上应该是相似的。如此巨大的差异是否有充分的理由。

编辑:测试是在大量迭代中进行的。

最佳答案

尝试多次分配,看看它们是否都慢或只有第一个。如果只有第一个很慢,那可能是因为支持共享内存的页面需要提交(而不仅仅是保留)。如果页面已提交,它可能仍然需要被调入(从页面/交换文件)。

除了初始分配之外的任何缓慢,都可以归因于高度调整的自由存储分配器(即新的)与 boost 用于管理共享内存段中“分配”的机制(例如,boost 可能使用可移植和序列化分配的更昂贵的同步机制)。

关于c++ - boost 进程间内存分配缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7637398/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com