位置: 编程技术 - 正文

cocos2d-x内存管理的概括理解(cocos2dx减少内存开销)

编辑:rootadmin

推荐整理分享cocos2d-x内存管理的概括理解(cocos2dx减少内存开销),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx内存管理机制,cocos2d内存优化,cocos 内存优化,cocos2dx内存优化,cocos creator内存管理,cocos2dx内存管理机制,cocos2d内存优化,cocos creator内存管理,内容如对您有帮助,希望把文章链接给更多的朋友!

接触cocos一段时间了,总结下内存管理中的引用计数,简单点说吧,方便理解:

cocos2d-x内存管理的概括理解(cocos2dx减少内存开销)

首先,一个对象create的时候,它的引用计数会在底层的构造函数中被初始化为1,这就是为什么create出来的东西,_refCount会是1。

其次,当这个对象被别的地方引用的时候,它的引用计数会加1。何为被别的地方引用?不要太纠结了,因为本人纠结了很久,都有点对“引用”产生恐惧了,呵呵。最后通过断点观察到了真相,简单说,就是你操作这个对象的方法,其内部写了retain(),这就是所谓的“被引用”。比如,addChild(这个对象),你在用addChild去操作你的对象,最后对象的计数会加1。是因为addChild方法中,对“这个对象”执行了->retain(),这就是为什么addChild后,_refCount变成2;

重点来了,cocos2dx的主循环是怎么在干活的?第一,你创建的对象基本都是会调用autorelease()的,所以你的对象都放在了回收池中,回收池干嘛的?主循环每帧结束前都会把回收池里的对象清一次,这个“清一次”,就是让所有对象的引用计数减1,重点又来了,引擎内部是这样判断的,减1之后,马上会来个if判断,如果为_refCount为0了,就会执行delete this了。明白了吧,delete可是六亲不认的,真正从内存中释放掉这个东西。然后,重点又来了,主循环马上准备绘制下一帧,上次回收池清理后,还活下来的对象,重新被retain()了,所以你感觉你的东西一直在屏幕上,而且引用计数也没变(能明白吗?因为autorelease()是成对的retain()和release()的,release过后,稍等片刻就会retain了,这个“片刻”你基本观察不到,嘿嘿)。然而,如果上一次你的东西被delete掉了,这次绘制的时候就不在池子里了,此时,代码里面还存在的这个对象就好比“闻其名,而不知其身”了,当然就是不能拿来用了的咯,不然,就一声............蹦。

cocos2dx 中两个场景切换后,导致资源丢失解决方案 自己写的两个场景,两场景切换后导致崩溃。打断点,看日志,折腾了一天。然后发现是切场景时加载的资源被释放了。于是自己上网查了一下,主要

关于make: *** No rule to make target""问题总结 今天想编辑一下新写的一个小程序,结果maker的时候一直报错,一直提示错误结果上网搜索解决方法,得出结论就是文件名或者路径不对,我自己又核对

cocos2dx项目接入爱贝第三方支付sdk遇到的问题及解决方案 1.今天接入cocos2dx项目爱贝sdk,再点击计费点,游戏崩溃终止,我一直以为是自己的支付接口接的不对,一直修改,但是毫无进展,我联系了一下爱贝客

标签: cocos2dx减少内存开销

本文链接地址:https://www.jiuchutong.com/biancheng/372706.html 转载请保留说明!

上一篇:cocos2dx3.1.1版本的手机屏幕适配(cocos3.0)

下一篇:cocos2dx 中两个场景切换后,导致资源丢失解决方案(cocos 2d x)

  • 普通发票的税率1%
  • 一般纳税人销售农产品增值税税率
  • 个体户三万以内免个税
  • 小规模纳税人取的专票能抵扣吗
  • 处置子公司全部股权会计处理 企业会计准则
  • 资产负债表试算平衡表是什么
  • 小规模纳税人出售使用过的汽车
  • 租赁违法处理
  • 购销合同印花税优惠政策
  • 留存收益总额不变
  • 装修费可以一次性计入费用吗
  • 银行账户销户时需要收回开户许可证吗
  • 餐饮企业收到现金抵用券会计分录
  • 上月税没报,可以开发票吗
  • 一般纳税人从小规模纳税人取得专用发票
  • 集体福利支出包括
  • 小规模开专票可以享受1%吗
  • 外地预缴增值税可以抵本地增值税
  • 文艺汇演活动经历怎么写
  • 支付股息如何做账务处理
  • 退税收入要不要交所得税?
  • 贸易公司出口是什么意思
  • php类和对象写法
  • 公司二手车转个人
  • linux怎样使用
  • PHP:mcrypt_get_cipher_name()的用法_Mcrypt函数
  • php写文件函数
  • 达拉斯位置
  • 会计核算中 制度有哪些
  • 发票已开,款未到的会计分录
  • 税务函调异常怎么处理
  • tokenall
  • 前端不使用明文密码方案
  • 多线程 cpp
  • js删除
  • 购买的商品作为赠品怎么入账
  • 查账征收的纳税人能否简易注销
  • python报错怎么办
  • 逆回购划算吗
  • 分公司开票总公司收款怎么做账
  • 金税盘登录密码和口令从哪查
  • 年终汇算清缴所得税计算器
  • 建筑工程分包案例
  • mysql innodb锁
  • sql server join
  • 在mysql中设置事务保存点
  • mysql字符串索引如何排序
  • 个人所得税完整申报流程
  • 预期信用损失率的确认依据和过程
  • 对公可以转个人账户货款吗
  • 冲销坏账怎么做分录
  • 未交增值税账务处理
  • 行政事业单位如何开发票
  • 企业主要的工会是什么
  • 企业持有的能够对被投资单位实施控制的长期股权投资
  • 明细账的登记方向与总账的登记方向是一致的
  • 年初要新建帐套吗
  • sql server数据库查询语句
  • bios没有usb启动项解决方法联想
  • Ubuntu 14.04系统怎么安装Nvidia 私有显卡驱动?
  • 如何快速查询身份证号码
  • windows8开始菜单消失了怎么恢复
  • 右键回收站一直转圈
  • WIN10怎么卸载更新
  • Android:Activity+Fragment及它们之间的数据交换(一)
  • shell脚本入门详解
  • dos命令查看
  • bat修改ip地址
  • js字符串的操作方法
  • shell中的grep怎么用
  • 文件夹右键菜单管理
  • 为什么使用json传输数据
  • Tasharen Fog of War v1.0战争迷雾插件的使用(含Unity5.0Bug解决)
  • activity的自定义流程
  • android canvas rotate
  • 暖气费政府补贴
  • 在地税局工作是什么编制
  • 现在是一般纳税人,属于小规模发生的业务怎么开票
  • 国家税务总局的官网
  • 深圳税局电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设