订阅业界RSS CSDN首页> 业界

Snapdragon Profiler:找瓶颈调代码?一键秒懂!

发表于2015-08-20 14:18| 次阅读| 来源未知| 0 条评论| 作者李洪亮

摘要:传统的程序员会花费数小时甚至数天时间试图在自己的代码中寻找性能瓶颈。可能会采用单步调试的方法,启用/禁用部分特定代码,重新编译和运行App的不同配置来了解部分特定代码的开销,以便在运行于CPU、GPU、网络和内存中的App代码中寻找性能瓶颈。可能会浪费数小时或数天时间来做这项工作,而且...

传统的程序员会花费数小时甚至数天时间试图在自己的代码中寻找性能瓶颈。可能会采用单步调试的方法,启用/禁用部分特定代码,重新编译和运行App的不同配置来了解部分特定代码的开销,以便在运行于CPU、GPU、网络和内存中的App代码中寻找性能瓶颈。可能会浪费数小时或数天时间来做这项工作,而且可能并未找到并优化吞噬资源的代码。

集于一身

寻找一款Android App的分析调节和调试工具并非难事,但找到一款能够在单一UI(用户界面)中同时显示功耗、温度曲线、网络使用和CPU、GPU及内存性能的软件却并非轻而易举。Snapdrago Profiler比这更进一步,它甚至支持Android跟踪数据的分析调节。

即插即用

用于商用设备的Snapdragon Profiler新鲜出炉了。在您口袋中的Nexus设备上尝试一下吧,看看您想了解的一切——关于您开发的App的资源消耗,以及更多内容,从而帮助更有效地优化代码。如要进行这些分析,您并不需要对编写的商业App代码做出任何变动。

对所有人开放

Snapdragon Profiler适用于各种类型的Android开发,而并不仅仅局限于图形和游戏开发。它的设计能够满足全部开发人员的需求:从自定义系统功能或开发原生及嵌入式应用的初级系统开发者,到使用Java的App高级开发者。Snapdragon Profiler可运行于大多数Android设备上,我们特别推荐其用于搭载Snapdragon处理器的商用设备(尤其是Nexus 5和Nexus 6)和开发设备(DragonBoard, MDPs)上,以获得最佳的开发体验。

假设您正在为一款社交App开发UI,却发现它运行缓慢。您可以通过USB或Wi-Fi将设备连接至您的工作站,然后运行Snapdragon Profiler。您认为您开发的App应该以每秒60帧的速度运行,但FPS计数器显示其运行速度只有每秒20帧。随后,您用Snapdragon Profiler试验实时超控,启用/禁用部分功能如纹理尺寸、着色器和背面剔除。也许您会完全禁止GPU调用。

如果仍然没有任何改善,这就强烈意味着您遭遇了CPU瓶颈,这样您就可以专注于CPU的核心频率和CPU核心利用率上,以查找峰值点,如图1所示。

多种交互模式

台式机上的Snapdragon Profiler客户端软件能以三种不同的模式分析调节在设备上运行的App:

•实时模式:当您的App在设备上运行时,您开始进行分析调节。在桌面端您可以即刻看到设备发送的绘制数据,如图1所示。由于其实时特性,本模式可用于观察事件及其效果。

图1:实时模式

跟踪视图模式:您可以选择不同的Android跟踪事件,然后开始捕捉,停止捕捉后对事件进行分析,如图2所示。当您试图了解App在某段时间内的系统使用数据,并且想要将数据进行详细的可视化以离线分析时,这一模式非常有用。

图2:跟踪视图模式

快照模式:当您在某一特定帧或场景中发现存在不佳的图形性能时,可使用快照模式。此模式可将该特定帧的所有资源,如纹理、着色器、绘制调用、OpenGL ES状态进行可视化显示。您可编辑着色器,查看纹理的mip贴图级别,并检测不同绘制调用和状态的工作负载。除了这些出众的特性,快照模式还具备一项强大的功能,可以让您检测像素历史(参见图3)。

图3:快照模式

新特性

人人都有喜欢的热门游戏,但没人想在一台发热巨大且快速耗尽电量的设备上进行游戏。作为一名开发人员,您应该不仅仅关心跑分性能,还应当在目标商用设备上测量并优化App的能耗和发热,以确保最佳的用户体验。Snapdragon Profiler可帮您将系统的多个部分进行可视化、相互关联并进行试验,从而助您了解如何优化能耗和散热方面的问题。

为了避免通过USB搜集功耗和温度数据同设备充电的冲突问题,我们通过Wi-Fi启用了ADB界面,以获取最精确的功耗和发热数据。 

未来打算

Snapdragon Profiler将我们之前的数个工具如 Adreno™ GPU Profiler和Trepn™ Power Profiler 进行了整合,并在单一UI中展示了之前您无法查看的大量信息。现在下载Snapdragon Profiler,立刻分析调节并优化您的App。

0
0