Cocos2d-x   发布时间:2022-05-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
instruments是动态分析工具,它与Xcode集成在一起,可以在xcode中通过菜单Product→Profile启动。启动如图所示,instruments有很多跟踪模板可以动态分析和跟踪内存、CPU和文件系统。

@H_607_3@


每个跟踪模板都有不同的用途,其中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(堆)内存占用情况,因为堆内存需要人为释放,而栈内存不用人为管理。

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


@H_607_3@

@H_607_3@

更多内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》
本书交流讨论网站: http://www.cocoagame.net
更多精彩视频课程请关注智捷课堂Cocos课程: http://v.51work6.com
欢迎加入Cocos2d-x技术讨论群:257760386@H_607_3@@H_607_3@

大佬总结

以上是大佬教程为你收集整理的Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用全部内容,希望文章能够帮你解决Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。