我刚刚执行了关于应用程序中每种类型的对象数量的Allocation Profiling。我正在广泛地使用boost::shared_ptr。
我发现分配了大量的sp_counted_impl_p对象,每个对象占用16个字节。每个shared_ptr可以预期有多少个sp_counted_impl_p对象?有没有人有主意?
发布于 2009-03-31 07:03:04
根据我在实现中所看到的,每个shared_ptr只有一个。但是,请注意boost内部使用了更多对象,这些对象可以直接使用这个计数的类,也可以使用shared_ptr本身。此外,如果您使用boost.serialization框架,它也是基于这个类/机制的。无论如何,所谓“一个大数目”,究竟有多少人?
发布于 2009-03-31 07:47:17
使用shared_ptr指向的每个对象都应该有一个。如果它们更多,你可能没有正确地使用shared_ptr,并且你在自找麻烦,比如double-free error。
https://stackoverflow.com/questions/700188
复制相似问题