Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用

Instruments是动态分析工具,它与Xcode集成在一起,可以在Xcode中通过菜单Product→Profile启动。启动如图所示,Instruments有很多跟踪模板可以动态分析和跟踪内存、CPU和文件系统。



每个跟踪模板都有不同的用途,其中Leaks可以检测内存泄漏点,Allocations跟踪模板可以查看内存的使用情况。下面我们通过一个实例介绍一些Instruments工具的使用,我们来人为制造一个内存泄漏,我们在HelloWorldScene.cpp中修改代码:

bool HelloWorld::init()  
{  
    if ( !Layer::init() )  
    {  
        return false;  
    }  
    __String *s = new __String();  
  
  
    log("%s",s->getCString());  
  
  
… …  
  
  
    return true;  
} 

我们在代码中添加了__String *s = new __String()语句,使用new关键字分配内存,然而直到init函数结束我们都没有使用delete s语句释放它。这样的语句会导致内存泄漏。
首先启动Instruments工具,在图对话框中选择Leaks跟踪模板,点击按钮Profile进入如图所示界面。


在Instruments中,虽然选择了Leaks模板,但默认情况下也会添加Allocations模板。基本上凡是分析内存都会使用Allocations模板,它可以监控内存分布情况。选中Allocations模板(图中①区域),右边的③区域会显示随着时间的变化内存使用的折线图,同时在④区域会显示内存使用的详细信息,以及对象分配情况。点击Leaks模板(图中②区域),可以查看内存泄漏情况,如图20-3所示,如果在③区域有红线出现,则有内存泄漏,④区域则会显示泄漏的对象。


点击上图中出现的泄漏点(红线)在④区域打开详细界面,如下图所示,可以发现一个cocos2d::__String对象,可以看到它的内存地址、占用字节、所属框架和所属函数等信息。



点击工具栏View中的按钮,打开扩展详细视图,如图20-5所示,可以看到右边的跟踪堆栈信息,其中图标所示的条目是我们自己应用的代码,双击HelloWorld::init()可进入程序代码,如图所示。





图所示的第33行代码就是泄漏点程序代码了,我们从中不难发现问题。
如果我们想进一步评估它对于内存的占用情况,可以看看Allocations模板的折线图。从图中看到,各种变量的使用内存占用情况,也可以知道某个时刻的内存占用情况。4号区域是Heap(堆)内存占用情况,因为堆内存需要人为释放,而栈内存不用人为管理。

 

事实上,内存泄漏是极其复杂的问题,工具使用是一方面,经验是另一方面。提高经验,然后借助于工具才是解决内存泄漏的根本。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos Creator,有一些常见的性能优化方法可以帮助提高游戏的性能: 1. 减少渲染批次:合并相邻节点的渲染批次可以减少绘制调用。可以使用Cocos Creator提供的节点分组功能或者合并节点来减少渲染批次。 2. 使用图集:将游戏的小图标合并到图集可以减少纹理切换和内存开销。 3. 控制粒子系统的数量:粒子系统在游戏可以带来很好的效果,但是过多的粒子会导致性能下降。可以通过控制粒子的数量、生命周期和发射频率来优化性能。 4. 使用连接池:对于频繁创建和销毁的对象,可以使用连接池来重用对象,减少内存分配和垃圾回收的开销。 5. 资源压缩和优化:对游戏的资源进行压缩和优化,包括图片、音频和视频等。可以使用工具对资源进行压缩,并使用合适的压缩格式和加载策略来提高加载速度和减少内存占用。 6. 避免过多的Update回调:在游戏,Update回调每帧都会执行,如果有过多的Update回调,会导致性能下降。可以合理使用Update回调,避免不必要的计算和更新。 7. 禁用不需要的物理碰撞检测:如果游戏不需要物理碰撞检测,可以禁用物理引擎或者禁用不需要进行碰撞检测的节点。 8. 使用合适的碰撞体形状:对于物体的碰撞体,选择合适的形状可以减少碰撞检测的计算量。可以根据物体的形状和特性选择合适的碰撞体形状,比如使用简单的矩形形状代替复杂的多边形形状。 9. 合理使用批量渲染:Cocos Creator提供了批量渲染功能,可以将相邻的节点合并为一个批次进行渲染,减少绘制调用。可以合理使用批量渲染功能来优化性能。 10. 使用性能分析工具Cocos Creator提供了性能分析工具,可以帮助开发分析游戏的性能瓶颈,并进行相应的优化。可以使用性能分析工具来定位和解决性能问题。 以上是一些常见的Cocos Creator性能优化方法,根据具体的游戏需求和场景,还可以进行其他针对性的优化。在进行性能优化时,建议先进行性能测试和分析,找出性能瓶颈,并有针对性地进行优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值