Cocos2d-x 如何优化内存使用
内存优化原理为优化应用内存使用,开发人员首先应该知道什么最耗应用内存,答案就是纹理! 纹理几乎会占据90%应用内存。所以尽量最小化应用的纹理内存使用,否则应用很有可能会因为低内存而崩溃。 本文介绍Cocos2d-x游戏通用的两条内存优化原理指导。
认识瓶颈寻找方案可用一些代码获取游戏内存使用的其他信息,如下所示: CCTextureCache::sharedTextureCache()->dumpCachedTextureInfo(); 调用这个代码后,游戏便会在DEBUG模式运行,这时你会在Xcode控制台窗口看到一些格式工整的日志信息。 Cocos2d: cocos2d: "cc_fps_images"rc=5 id=3 256 x 32 @ 16 bpp => 16 KB Cocos2d: cocos2d: "XXX/hd/actor.pvr.ccz"rc=1059 id=4 2048 x 2048 @ 32 bpp => 16384 KB Cocos2d: cocos2d: CCTextureCache dumpDebugInfo: 2 textures,for16400 KB (16.02 MB) 从上可以看到会显示纹理的名称、引用计数、ID、大小及每像素的位数。最重要的是会显示内存的使用情况。如“cc_fps_images”指消耗了16KB内存,而“actor.pvr.ccz”消耗了16M内存。
切勿过度优化这是一个通用的优化规则。在优化过程中,应该做一些权衡取舍。因为有时候图像质量和图像内存使用是处于两级的状态。千万不要过度优化! 内存优化水平在此将ccos2d-x内存优化分为三个等级。每个等级都有不同的说明,策略也有点不一样。 客户端等级这是最重要的的优化等级。因为我们要在Cocos2d-x引擎顶层编译游戏,引擎自身会提供一些优化选项。 在这个等级我们可以进行大部分优化。简而言之,我们可以优化纹理、音频、字体及粒子的内存使用。
引擎等级非OpenGLES及游戏引擎高手,所以略过这部分
C++语言等级在这个等级中,建议是编写无内存泄露代码。遵循Cocos2d-x内置的内存管理原则,尽量避免内存泄露。
提示和技巧
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |