您的位置:首页 > 其它

如何用Instruments来分析应用程序的性能瓶颈

2013-07-10 08:43 288 查看
http://blog.chukong-inc.com/index.php/2012/05/21/如何用instruments来分析应用程序的性能瓶颈/


如何用Instruments来分析应用程序的性能瓶颈

Published on 2012
年 5 月 21 日, by donglin in C/C++iOS技术.

Instruments是个性能强大的工具集,包里面自带了多个工具。其中的OpenGL ES Driver工具可以用来分析应用程序中哪些模块给性能造成负担。以XCode4.3+Cocos2d-x工程为例,使用方法如下:

 

1 Instruments由菜单中的“Profile”方式激活,而“Profile”默认的编译方式是“Release”,ES Driver工具只有在真机设备上才能支持,因此首先在编译选项中,把“Code Signing”中“Release”的证书改为“Developer”使用的证书,否则不能成功运行ES Driver。如下图所示:





 

2 确定Build的目标是真机设备,然后选择Xcode菜单“Product”的“Profile”,待出现Instruments界面后,选择“Graphics”的“OpenGL ES Driver”。如下图所示:





3 出现主界面后,左边面板上默认选择的是OpenGL ES Driver,现在选择“Sampler”,并从右边面板Call Tree树中的“start”开始逐级展开,就可以看到总运行时间中各模块所占百分比了,值越大,说明该模块消耗的时间越多。如下图所示:





从图上可以看到cocos2d::CCScheduler::update(float)占了总运行时间的91.7%,而它下面又分为3部分,占用的时间比分别为:

57.5%     cocos2d::CCParticleSystem:update(float) 

32.4%     cocos2d::CCTimer:update(float)

1.7%        cocos2d::CCActionManager:update(float)

这说明粒子系统和update函数占了消耗时间的大头,虽然不是说大值就一定是性能瓶颈。但这些是还可以逐层展开的,例如update函数,能一直定位到应用程序的模块源代码中,从中看到哪些模块调用了update。

所以通过Instruments的OpenGL ES Driver工具,结合应用程序的源代码本身,思考下各个模块所消耗的时间百分比是不是不当,或者有些模块是不是偏高了,应该是可以做一些有价值的改进的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: