简介
电池续航时间,尤其是移动设备,对于用户的重要性不言而喻。我们都遇到过这样的时刻,即在最需要的时候设备突然断电 — 无论是在一座新城市中导航,还是正在接听一个重要的电话。虽然看上去不是那么明显,但是通过优化应用性能,开发人员能够降低系统功耗,进而为用户带来帮助。
借助英特尔® 图形性能分析器 + VTune™ 放大器的组合对应用进行分析
提高应用的功耗比首先要做什么?首先,您必须了解您的应用是 CPU 密集型还是 GPU 密集型。您可以使用一套英特尔® 工具组合来实现这一点:
英特尔® 图形性能分析器 or GPA是一种用于图形分析以及优化 Microsoft DirectX* 应用和 Android* OpenGL ES* 应用的工具。了解更多信息,请访问:https://software.intel.com/en-us/articles/gpa-which-version
出于优化安卓平台的目的,我倾向于使用 GPA 控制台客户端。了解相关信息,请访问:https://software.intel.com/en-us/android/articles/using-intel-graphics-performance-analyzers-console-client-for-android-application
VTune™ 放大器可帮助您分析算法选择,并发现您的应用如何从可用的硬件资源获益。使用 VTune 放大器定位或确定:
- 应用和/或整个系统中最耗时的功能(热点)
- 无法有效利用可用处理器时间的代码段
- 针对连续处理性能和线程性能优化的最佳代码段
- 影响应用性能的同步对象
- 应用是否处理输入/输出操作,以及具体的位置和处理方式
- 不同同步方法、不同的线程数量或不同算法对于性能的影响
- 线程活动和转换
- 代码中与硬件相关的瓶颈
配置主机系统(Linux*、OS X* 或 Windows*),并在远程系统(Linux 或 Android)上运行分析。仅面向系统的 VTune 放大器支持在安卓和嵌入式 Linux 系统上执行远程分析。
了解更多信息,请访问:https://software.intel.com/en-us/node/496918
下图展示了如何使用 GPA 和 VTune 放大器的组合来分析和优化应用。
什么是英特尔® 内联函数
英特尔® 内联函数是使用汇编编码的函数,支持您使用 C/C++ 函数调用和变量来取代汇编指令。内联函数提供了使用标准 C 和 C++ 语言结构而无法生成的指令。
内联函数支持内嵌扩展,进而消除了函数调用的开销。内联函数提供了与使用内嵌汇编相同的优势,有助于提高代码可靠性、帮助指令调度以及减少调试。
了解更多信息,请访问:https://software.intel.com/en-us/node/523351
如何查找面向安卓*操作系统的英特尔® C++ 编译器,并将其连接至您的项目?
随英特尔® INDE 套件提供。面向安卓*的英特尔® C++ 编译器集成了安卓 NDK,并且提供了编译 x86 库的优化方案。
下载并安装面向安卓的英特尔 C++ 编译器。安装过程中提供 NDK 目录的路径,以便将面向安卓的英特尔 C++ 编译器集成至安卓 NDK。
成功安装后,面向安卓的英特尔® C++ 编译器将自动集成至安卓 NDK 工具链,并将编译面向 x86 架构的优化库。
示例
通过分析 VTune 放大器中的字符串,配置文件 将会显示编译器生成 sqrt + div(而不是 rsqrt)。
|
参考资料
如欲了解更多信息,请观看我的视频:https://videoportal.intel.com/media/0_qgvcof5s
关于作者
Stanislav Pavlov 任职于英特尔公司的软件 & 服务事业部。他在技术领域拥有十几年的丰富经验。他关注的主要领域包括性能优化、功耗和并行程序设计。作为英特尔的一名高级应用工程师,Stanislav 与软件开发人员和 SoC 架构师紧密协作,帮助他们在英特尔平台上实现尽可能出色的性能。Stanislav 毕业于国立研究大学高等经济学院,拥有数理经济学硕士学位。他目前正在攻读莫斯科商学院的 MBA。