我刚刚执行了Allocation Profiling,了解了我的应用程序中每种类型的对象数量。我正在广泛使用boost :: shared_ptr。
我发现分配了大量的sp_counted_impl_p对象,每个对象占用16个字节。每个shared_ptr可以预期多少个sp_counted_impl_p对象?有人有想法吗?
答案 0 :(得分:2)
对于我在实现中可以看到的内容,每个shared_ptr只需一个。但是请注意,内部使用boost的对象有更多,可以直接使用此计数类或shared_ptr本身。此外,如果您使用boost.serialization框架,它也基于此类/机制。无论如何,“大量”,有多少人在那里?
答案 1 :(得分:1)
每个对象应该有一个shared_ptr
指向的对象。如果它们中有更多,你可能没有正确使用shared_ptr
而你正在乞求像双重免费错误这样的麻烦。