0

我刚刚对我的应用程序中每种类型的对象数量进行了分配分析。我正在广泛使用 boost::shared_ptr。

我发现分配了大量的 sp_counted_impl_p 对象,每个占用 16 个字节。每个 shared_ptr 可以预期有多少 sp_counted_impl_p 对象?有人有想法吗?

4

2 回答 2

2

对于我在实现中可以看到的,每个 shared_ptr 只有一个。但是,请注意 boost 在内部使用了更多对象,它们可能直接使用这个计数的类或 shared_ptr 本身。另外,如果你使用 boost.serialization 框架,它也是基于这个类/机制的。无论如何,以“大数”来说,有多少?

于 2009-03-31T07:03:03.583 回答
1

您指向的每个对象都应该有一个shared_ptr. 如果它们更多,您可能没有shared_ptr正确使用,并且您正在乞求诸如双释放错误之类的麻烦。

于 2009-03-31T07:47:17.207 回答