shared_ptr和unique_ptr对性能的影响

shared_ptr(ptr)形式构造shared_ptr对象时,由于shared_ptr内部引用计数对象要通过new创建,这样所有的对象才能指向同一个引用计数变量;
而如果调用make_shared要调用1次new(会在new对象的同时也一起创建出引用计数对象),所以开销较小。

unique_ptr由于不需要存储引用计数,对象的所有权通过reset和release进行过渡。调用make_unique只要调用一次new,所以有着接近原生指针的性能。
但unique_ptr指向的对象不能共享,所以在有时候要求对象要共享又对性能有要求时,使用继承引用计数基类的方式来实现share,这时要求需要shared的类必须继承引用计数基类class A : public RefCount,目的是将make_shared的两次new减少到1次,从而提升性能

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值