Cocos、Lua游戏内存释放之我见

本系列针对cocos2dx+Lua游戏开发,在本篇中主要Lua对象释放的姿势,避免造成内存泄漏,有写得不好或者写错的地方,麻烦大家帮忙指正。


介绍之前,我们先了解一下游戏运行时,最基本的内存占用。(这里的划分并不标准,只是为了形象介绍划分出来的)
1、贴图内存
2、代码运行内存

其中贴图内存主要包括贴图资源和字体资源。代码运行内存包括平台层,C++层,Lua层等,相对于贴图内存来说,占比较小,但往往一些写法用法不当或导致内存泄漏和贴图内存泄漏。

在这一课我们介绍的是C++对象以及Lua对象释放的姿势,其它的暂不作介绍。

cocos2dx移植于Objective-C,因此和OC一样使用了比较原始的引用计数的方法来管理内存,这里我们说一下Ref引用计数。

Ref(2.x中为CCObject)是引用计数的模型:
1、Ref抽象类(不能实例化,只能由子类实例化);
2、创建默认引用计数为1;// _referenceCount(1);
3、引用计数为0时,执行delete销毁。

  • retain

    引用计数加1,++_referenceCount

  • release

    引用计数减1,–_referenceCount

  • autorelease

    引用计数不变ÿ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值