【发布时间】:2015-11-01 16:54:30
【问题描述】:
我正在开发一个使用多个(比如 5M)对象的应用程序。
每个对象都由单个std::shared_ptr 组成,它指向内存中的blob。每个内存blob 都有不同的大小。
我想最小化分配,所以我想做类似std::make_shared 或std::allocate_shared 的事情,这样就可以进行单一分配。
这似乎是不可能的(使用 Boost 可能是可能的)
make_shared with custom new operator
下一个选项是自己实现 ref count :) 。我知道这根本不容易,最好有两个分配,而不是一些隐藏的错误,但我想探索这种可能性。
有没有类似的现成实现?
我也可以找到这个:
https://isocpp.org/wiki/faq/freestore-mgmt#ref-count-simple
【问题讨论】:
-
请使用c++ 标签。无论如何,要求图书馆是题外话。
-
听起来您真的想要自己的内存管理系统,而不是引用计数系统(XY 问题)。而且我怀疑你能比你的编译器供应商做得更好。
-
@JonathanPotter - 这真的很有帮助:)
标签: c++ c++11 shared-ptr smart-pointers reference-counting