位置: 编程技术 - 正文

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)

  • 即征即退进项税额转出
  • 专用发票超过360天认证期怎么办?
  • 员工的生日津贴怎么发
  • 完税凭证可以补办吗
  • 资金结存科目余额对应
  • 二季度申报时间
  • 办税人员可以是其他公司人员吗
  • 发票认证后怎么打明细
  • 个税完税凭证在哪里打印出来
  • 抄报税校验失败调用系统服务出错怎么办
  • 5个点的税率是多少
  • 金税盘查发票明细
  • 增值税专用发票电子版
  • 复利现值系数完整版
  • 建筑预缴税款后如何进行账务处理?
  • 投资活动购建固定资产
  • 非货币交易例子
  • 营改增住宿费的进项税可以抵扣吗
  • 公司职员聚餐取个名字
  • 个体户国税定额开发票60000元地税要交多少钱?
  • 代开的专票作废了怎么做账?
  • 广告设计制作的技术框架
  • 把黑龙江省
  • 含税销售额的计算公式是什么意思
  • 预提租赁费会计处理
  • 增值税普通发票有什么用
  • 多交增值税如何做账
  • linux minor
  • 在windows7的
  • 默认网关不可用怎么修复
  • php中字符串函数
  • 投资性房地产转换日公允价值大于账面价值
  • 差额银行承兑汇票
  • 蚊子叮咬怎么办手抄报
  • 经销商会议流程安排
  • php解析xml数据
  • 预计利润表中的销售成本如何计算
  • 固定资产折旧企业所得税税前扣除标准
  • php加密方式有哪些
  • yolov5中使用的限制目标宽高的方法防止梯度爆炸
  • 制造业企业资金如何循环周转
  • 精选100个Python实战项目案例,送给缺乏实战经验的你
  • stat 命令
  • 公司租赁个人车辆怎么开发票
  • 所得税的期初资产怎么算
  • 外请专家讲课费如何交税
  • sql注入漏洞不会出现在哪个位置
  • phpcms使用教程
  • 安装配置mysql,检验是否正常安装
  • 银行贷款第三方是什么意思
  • sql 按顺序查询
  • sqlserver游标的使用
  • 火车票可以抵扣进项吗
  • 运输途中发生的合理损失
  • 房地产企业取得土地的契税如何记账
  • 土地增值税清算收入如何确定
  • 应收账款平账怎么处理
  • 一次性收取一年的租金如何做分录
  • 辞退员工 工资
  • 以旧验新发票
  • 会计备注一般写什么
  • mysql查询两个表的数据
  • 怎么用winxp的系统光盘启动
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • linux怎么查看
  • windows7怎么解除密码
  • 欢迎使用来电提醒业务是什么意思
  • ghost详细说明
  • css布局的经典网站
  • unity3d怎么改变物体大小
  • unity unity3d
  • javascript学习指南
  • bootstrap需要学多久
  • Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
  • 安卓开发速成
  • python系统监控
  • 电子税务局怎么添加开票员
  • 江苏税务个税查询
  • 国家税务局总局咨询平台
  • 买车开增值票是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设