- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10内存
第10 章 内存管理机制
“内存管理”经常被一些新手看作是非常高深的技术。因为貌似只有多年经验的开发者,才会谈论到内
存的管理技术。甚至一些高级语言早已提供了优秀的内存管理方法。但是作为Cocos2D-X 所使用的主要编
程语言C++ ,却没有内存管理的功能。这也是C++语言的使用者较少,学习门槛较高的原因之一。本章节
将会围绕Cocos2D-X 引擎的内存管理机制进行讲解,让读者清楚明白地掌握这门高深的技术。
说明:Java 和Objective-C 编程语言本身就提供了垃圾回收的内存管理方式。
10.1 内存管理概述
内存管理一直都被开发者看作是一项重要的技术。无论是应用程序,还是游戏产品,内存管理的技术
都发挥着关键作用。因为任何应用程序都是依附于内存而运转的。代码中创建的所有对象以及变量,都将
存在于内存当中。内存为CPU 运算提供了数据环境。由此可见,内存是一项很重要的资源。尤其是资源有
限的手持平台,更显得物以稀为贵。
内存管理是成为编程高手的必经之路。所谓的内存管理是应用程序对电子设备内存资源的分配和使用技术。
从计算机时代开始,开发者就一直关注于如何高效、快速地分配,并且在适当的时候释放和回收内存资源。对
于多数程序员来说,内存管理的认识都是来自于图10-1 所示的内存不足警告。
内存管理包含着很多深奥的技术。读者想要弄得透彻明白,可不是这一个
章节就能搞定的。整整一本书估计都不够。但这并不代表内存管理是不能触碰
的绝对领域。不要被那些经验老道、满口是非的程序员忽悠。他们常常挂在嘴
边的一句话就是“内存管理很难啊!可要小心点!”。这一切都是纸老虎。阅读
图10- 1 内存不足的警告
了本章节的内容后,读者就会有所领悟。内存管理并没有听上去那么难。
Cocos2D-X 引擎提供了一套完善的内存机制,帮助开发者解决了管理内存的繁琐。这正是保证引擎能
够稳定高效运行的核心。引擎中运用了成熟的内存管理技术,使得初级开发者也能够运用自如。就算不清
楚其原理,开发者依然能够制作出优秀的游戏产品。
说明:之前章节的内容,已经有很多运用内存管理的地方。但是在介绍的过程中,我们并没有遇到内
存的问题。
内存管理中经常遇到两个问题:内存泄漏与内存溢出。
(1)内存溢出是指有限的内存资源被全部占用了。应用程序无法再申请新的内存空间。这就好比去超
市买东西,购物袋已经塞满了,但是东西还没齐备,此时就只能丢掉一部分东西了。对应用程序来说,那
就是一个严重的问题,有可能会导致内容缺失,也有可能会导致数据或者逻辑错乱。
(2 )内存泄漏是指内存中的资源被遗弃了。由于疏忽或错误造成程序未能释放已经不再使用的内存,
这些被遗弃的内存并不会被重新利用,反而会一直占据了资源。轻微的内存泄漏并不严重,但是当过多的
内存遭到浪费,就会导致内存溢出的情况。
谁也不希望遇到问题,但是编写代码可不能靠运气。现阶段的计算机是没有智能的,它只能够执行开
发者编写好的代码。所以为了避免内存的问题导致游戏产品出现崩溃或者闪退的现象,读者就需要仔细阅
读下面的内容了。在Cocos2D-X 引擎中使用了引用计数和自动释放池的技术来管理内存。有过Objective-C
或者 Java 编程经验的读者,应该对这两个名词并不陌生。这正是两种编程语言垃圾回收机制实现的方法。
所以接下来读者有机会了解其内部的运作机制。
说明:引用计数和自动释放池的内存管理技术并不是Cocos2D-X 引擎独创的,在很多领域都有其应用。
10.2 引用计数
Cocos2D-X 引擎中使用了引用计数的原理。这是一种古老而有效
的内存管理技术。它是自动内存管理实现的基础。引用计数的道理很
简单,一句话就可以说明白,在对象的内部增加一个计数器。当其外
部引用增加时,计数器就加一;当外部引用消失时,其计数器就减一。
如图10-2 所示的方式。
Cocos2D-X 引擎中,任何的对象都可以使用引用计数的方式。这
主要是因为类 Ref 提供了基本引用计数功能。接下来,我们就通过类
Ref 的源代码来了解引用计数的规则。
您可能关注的文档
- (dielectric)一.静电场中的导体1.静电平衡时,导体内部.ppt
- ,深色皮鞋;三、男女生头发应不遮盖耳朵,女生盘头,露出.PDF
- 1.KeyB.该句意思是旅店从豪华型到简易型不等,前者在费.PDF
- 015-朴仙花.PDF
- 1.等腰三角形.PDF
- 106学年度进修学士班申请入学招生报到状况额满系所及备.PDF
- 1999年年度报告.PDF
- 1号通用交换软件服务能力说明书.PDF
- 2-2程式结构与分类.PDF
- 2005年,公司进军内地极具潜力之水务市场,.PDF
- 岸基供电系统 第4部分:工频电源.pdf
- 人教版八下英语Unit 5 What were you doing when the rainstorm came_测试卷.docx
- 热带作物品种区域试验技术规程 木薯.pdf
- 草原防火阻隔带建设技术规程.pdf
- 渔用气胀救生筏技术要求和试验方法-.pdf
- 浙江省杭州市2024-2025学年八年级下学期期中考试英语试卷(含答案).docx
- 重庆市渝北区六校联盟2024-2025学年九年级下学期期中教学大练兵语文试卷.docx
- 食品安全-花椒籽油 (2).pdf
- 2025年海博思创分析报告:储能集成“小巨人”,国内外业务进展可期.pdf
- 地理标志产品 宽城板栗.pdf
最近下载
- 毕业设计(论文)-徐州某小区1#住宅楼工程工程量清单与招标控制价的编制.docx
- 南山森林抚育补贴试点项目作业设计.pdf VIP
- 2022年北京市自来水集团有限责任公司校园招聘考试笔试试题及答案解析.pdf VIP
- 全国《职业教育》专业知识(重点)考试题库(300题).docx
- 青春期男女生交往.pptx
- 北京市自来水集团有限责任公司校园招聘85人公开引进高层次人才和急需紧缺人才笔试参考题库答案详解版及参.docx VIP
- 物理专业英语词汇.pdf
- 简易装修合同电子版3篇 .pdf VIP
- 瓦楞纸箱印刷过程中的质量控制.pdf
- GB∕T 35379-2017 木门分类和通用技术要求(高清版).pdf
文档评论(0)