2009-03-31 3 views
0

Я только что выполнил Allocation Profiling о том, сколько объектов каждого типа в моем приложении. Я использую boost :: shared_ptr экстенсивно.Большое количество объектов sp_counted_impl_p

Я нашел большое количество выделенных объектов sp_counted_impl_p, каждый из которых занимает 16 байт. Сколько объектов sp_counted_impl_p можно ожидать в shared_ptr? У кого-то есть идея?

ответ

2

Для того, что я вижу в реализации, всего один на shared_ptr. Однако имейте в виду, что во внутреннем окружении есть больше объектов, которые могут использовать этот подсчитанный класс напрямую или shared_ptr. Кроме того, если вы используете фреймворк boost.serialization, он также основан на этом классе/механизме. В любом случае, «большим числом», сколько из них?

+0

hmmm ... Я теперь думаю, что у меня есть только один на shared_ptr, но я собираю большое количество объектов! Спасибо за Ваш ответ. –

1

Должно быть по одному объекту, на который вы указываете, с помощью shared_ptr. Если их больше, вы, вероятно, не используете shared_ptr правильно, и вы просите о проблемах, таких как ошибки двойного доступа.

+0

hmmm ... Я теперь думаю, что у меня есть только один на shared_ptr, но я собираю большое количество объектов! Раньше я побежал, и мне сказали, что у меня нет двукратных ошибок. Спасибо за ваш ответ. –

+0

У вас не может быть больше объектов, чем указателей. – jpalecek

Смежные вопросы