人工智能
虚拟现实应用是否具备高性能对用户而言十分重要,不过,开发人员在如何实现高性能方面需要采取聪明的方法。
你是否会惊讶于有96%的移动用户认为VR性能很重要?如果性能对用户如此重要,那么我们就不可轻视它。即使性能不是我们最优先的处理事项,但是作为开发人员,我们有责任确保我们不运行烦人的后台服务,增加不必要的耗电。随着VR硬件更易于使用,我们的应用不应该使头盔过热。
Qualcomm®Snapdragon™Profiler允许您分析CPU、GPU、DSP、内存、电源、温度和网络数据,您可以找到并修复应用浪费电量、产生热量的性能瓶颈。加上Symphony™SDK和Adreno™SDK中的工具,Snapdragon Profiler是迈向异构编程的重要一步,也是构建VR应用的宝贵工具。它可以显示代码是如何影响Snapdragon处理器的不同核心和资源。
本文中,我将介绍三种方法,利用Snapdragon Profiler剖析应用内部发生的情况。下一篇文章中,我会讲讲VR编程中三种最糟糕的做法,并介绍分析方法。
首先,举一个例子,比如移动设备出现了烫手的温度。 我们都读到并看过手机运行过热时出现的后果。不管温度是在电池、存储器,还是在计算核心中积聚,都会产生重要的影响。因此,Snapdragon Profiler会显示应用如何影响测试设备的温度,以及温度如何影响计算能力。
下面的截图来自于我台式机上运行的Snapdragon Profiler。我通过USB连接到测试设备,分析设备上一款大量占用CPU资源的应用。
CPU内核的工作温度在150°F/65°C时仅仅保持了很短的时间,之后频率崩溃。此时,系统调度程序和电源监控器指示内核以较低的时钟频率运行,设备逐渐降温。可以看到CPU 0/1/2/3频率和GPU利用率直线下降了大约一分钟,然后逐渐回升。
如果您的VR应用发生这种现象,您想想会对用户体验产生什么样的影响?性能肯定也会直线下降。应用很难再像之前那样渲染帧,而是以较低的时钟频率运行,帧速率也较低。硬件根本无力应付。用户的一星差评将“杀死”您的应用。
这就是Snapdragon Profiler给出的应用信息。它提供了三种不同的模式,以发掘应用性能。
1. 实时模式——上面的截图为Snapdragon Profiler在实时模式下的性能分析。我利用USB(或Wi-Fi)通过ADB连接测试设备和开发机器。您可以选择正在运行的应用、服务和小组件,了解它们如何影响CPU、GPU、内存、网络和温度情况。
2. 跟踪捕获——为显示内核和系统随着时间推移的性能,跟踪模式以高采样率捕获事件。下面的截图中,Snapdragon Profiler显示了一款VR应用在表面渲染时,DSP指标和驱动程序的活动情况。
3. 快照模式——在快照模式下分析帧和缓冲区级别的纹理。您可以看到场景是如何使用OpenGL ES构建的:绘制调用、对象属性、着色器代码和像素历史。在下面的部分快照中,我标注了VR应用中右眼和左眼的绘制调用。
Snapdragon Profiler兼容所有搭载Snapdragon处理器的设备。包括商用板和开发板,如DragonBoard 410c。(非Snapdragon设备上支持的功能有限。)Android设备和版本越新,Snapdragon Profiler提供的信息越有价值。
Snapdragon Profiler现在即可下载、安装。
在VR应用中,Snapdragon Profiler可以帮助您充分利用16ms的时间(其实实测大约是12-14ms),渲染双眼的每一帧。我会在下一篇文章讨论这个话题。
更多Qualcomm开发内容请详见: Qualcomm开发者社区 。
全部0条评论
快来发表一下你的评论吧 !