C++内存使用小结

        由于这两年一直在做C和C++项目,感到在设计时,虽然 非常的小心在意内存管理问题,但是最终最大的问题还是出在内存管理上。所以研究了一段时间。

       经过学习,发现现在有两种方法解决内存管理问题:

  1. 引用计数。例如COM技术。采用这种技术目的是为了能够安全的访问对象,即:只要有一个用户还在使用该对象,该对象就不会删除。
  2. 内存池。这个技术主要目的是解决内存分配效率问题。

     引用计数技术不错,因为它能够让你不用考虑现在删除的对象是否被其他对象引用的问题。但是它是COM技术专用的。直接用COM技术会让我们在设计类的时候有很多局限(你的类也要从IUnknown派生么?)。boost库中的shared_ptr这个智能指针就是利用引用计数实现共享对象的。但是引用计数技术需要为每一个对象配一个小块内存用于计数,这可能让我们不太舒服。

    内存池技术的主要目的是提高效率。它正好能和shared_ptr互补。那么为什么不这样做呢:

                        引用计数技术 +  内存池技术

   这样,我们可以既不损失效率,还能对内存管理少些牵挂。

   我想,下一个C++项目还是由我构建的话,除了智能指针,我不希望让我的程序再出现指针这个数据类型。指针——实在让人懊恼。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值