% cumulative self self total
time seconds seconds calls s/call s/call name
23.96 1.04 1.04 94875867 0.00 0.00 boost::detail::atomic_increment(int*)
22.35 2.01 0.97 103405863 0.00 0.00 boost::detail::atomic_exchange_and_add(int*, int)
10.83 2.48 0.47 220469 0.00 0.00 boost::detail::shared_count::~shared_count()
8.41 2.85 0.36 577 0.00 0.00 boost::detail::shared_count::shared_count(boost::detail::shared_count const&)
8.29 3.21 0.36 98935041 0.00 0.00 boost::detail::sp_counted_base::release()
3.46 3.35 0.15 95010731 0.00 0.00 boost::detail::sp_counted_base::add_ref_copy()
Говорит ли это о том, что shared_ptr используется неправильно? Судя по atomic_increment(), там 5 asm инструкций. Почему gprof выдаёт такой overhead?