Xcode 8 Instruments工具集的变化与趋势

Posted Cocoa开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode 8 Instruments工具集的变化与趋势相关的知识,希望对你有一定的参考价值。


原文链接:http://www.jianshu.com/p/2ab57bfd43e3


最近项目比较赶,没看Xcode 8的发布说明,不过,在做性能优化时,发现Instruments工具集比Xcode 7少了几项,被精简的工具中有一项对我们项目影响较大,就是GPU Driver。


Xcode 8 Instruments保留了17个工具。



Xcode 8 Instruments


相比之下,Xcode 7 Instruments装载了19个工具。


Xcode 8 Instruments工具集的变化与趋势

Xcode 7 Instruments


被删除的工具分别是Automation和GPU Driver。Automation执行我们编写的脚本并启动在Automation分析应用列表中指定的App,这些脚本模拟了界面点击功能。GPU Driver则从GPU驱动统计接口调用并对相应时间段的CPU占用情况进行采样,用以分析OpenGL (ES)代码的性能。


Xcode 8 Instruments工具集的变化与趋势

被移除的工具


趋势分析


下面就Instruments的变更谈谈个人想法。


  1. Automation对应了自动化界面逻辑测试,此次Xcode更新移除它是否会在后期给出更方便的替代品,暂未得到消息,因此令人费解。


  2. GPU Driver的移动与Metal System Trace工具新增了tvOS和macOS对Metal的支持,暗示了苹果将不会推出官方支持的Vulkan,因为GPU Driver的存在主要是分析OpenGL (ES)程序的性能,Metal System Trace新增说明如下图所示。


    Xcode 8 Instruments工具集的变化与趋势

    Metal System Trace新增说明


那么,在未来的日子里,OpenGL ES 3.0将是ios支持的最后一个OpenGL ES版本。对于国内多数GPU编程的小团队而言,可能需要同时使用Xcode 7及Xcode 8,工作流依然是在Xcode 8中实现着色器逻辑,用Xcode 7 Instruments进行GPU优化,调校完iOS的着色器性能,再移植至android端,根据相应的芯片作进一步针对性的优化。当然,对于SenseTime这类有专业GPU开发团队的公司应该是没什么大影响的,因为它有资源实现Metal、Vulkan两套代码以便得到每个平台的最佳性能。当然,我是不会告诉你百度地图的引擎部分也是先在iOS上调试好再往Android上搬运的,这些故事是不能随便告诉别人的。


Xcode 8的GPU相关新增功能


问题来了,既然Xcode 8的Instruments被阉割了,为何我们还要使用Xcode 8呢?原因是,Xcode 8新增了几个实用的GPU调试功能,当然,新功能更多是方便Metal的。


1、查看已上传至GPU的纹理大小


Xcode 8 Instruments工具集的变化与趋势

Xcode 8 GPU调试新增功能


此功能可用于OpenGL ES,可方便查看上传到GPU的纹理尺寸及格式和缓冲区大小,比如1920x1080、Luminance8。


2、屏蔽GPU部分功能


严格意义上说,这并非新功能,而是从Instruments OpenGL ES Analysis搬运到Xcode。


Xcode 8 Instruments工具集的变化与趋势

Xcode 8新增的GPU调优功能


使用Xcode 8创建新项目,把老项目的代码逐一拷贝进来,发现部分功能可在OpenGL ES程序中使用,可禁用部分GPU功能查看性能表现,如下图所示。


Xcode 8 Instruments工具集的变化与趋势

禁用GPU部分功能


比如,选择最小化渲染的像素数量查看Fragment Shader对性能的影响,如下图所示。



最小化渲染的像素数量查看GPU性能影响




▲长按二维码“识别”关注即可免费学习 iOS 开发

月薪十万、出任CEO、赢娶白富美、走上人生巅峰不是梦

--------------------------------------

商务合作QQ:2408167315

投稿邮箱:support@cocoachina.com

以上是关于Xcode 8 Instruments工具集的变化与趋势的主要内容,如果未能解决你的问题,请参考以下文章

iOS xcode工具instruments的使用

XCode中 instruments 工具使用

XCode中 instruments 工具使用

如何读取 Xcode 6.1 Instruments .trace 文件?

Xcode:Instruments 4.0 需要 Mac OS X 10.7 Lion?

收到错误“无法附加到任务;尝试在连接的 iPad 上运行 Xcode 7 Instruments、Allocations/Leaks 工具时端口无效