Performance Management

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Managing the power and performance of Android devices can help ensure applications run consistently and smoothly on a wide range of hardware. In Android 7.0 and later, OEMs can implement support for sustained performance hints that enable apps to maintain a consistent device performance and specify an exclusive core to improve performance for CPU-intensive, foreground applications.

Sustained performance

For long-running applications (games, camera, RenderScript, audio processing), performance can vary dramatically as device temperature limits are reached and system on chip (SoC) engines are throttled. App developers creating high-performance, long-running apps are limited because the capabilities of the underlying platform are a moving target when the device begins to heat up.

To address these limitations, Android 7.0 introduced support for sustained performance, enabling OEMs to provide hints on device performance capabilities for long-running applications. App developers can use these hints to tune applications for a predictable, consistent level of device performance over long periods of time.

Architecture

An Android application can request the platform to enter a sustained performance mode where the Android device can keep a consistent level of performance for prolonged periods of time.

Figure 1. Sustained performance mode architecture

Implementation

To support sustained performance in Android 7.0 and later, OEMs must:

  • Make device-specific changes to the power HAL to either lock the maximum CPU/GPU frequencies or perform other optimizations to prevent thermal throttling.
  • Implement the new hint POWER_HINT_SUSTAINED_PERFORMANCE in power HAL.
  • Declare support by returning TRUE through the isSustainedPerformanceModeSupported() API.
  • Implement Window.setSustainedPerformanceMode.

In the Nexus reference implementation, the power hint caps the maximum frequencies of the CPU and GPU at the highest sustainable levels. Keep in mind that lowering the MAX bar in CPU/GPU frequency will lower the frame rate, but this lower rate is preferred in this mode due to its sustainability. For example, a device using normal max clocks might be able to render at 60 FPS for a few minutes, but after the device heats up, it may throttle to 30 FPS by the end of 30 minutes. When using sustained mode, the device can, for example, render consistently at 45 FPS for the entire 30 minutes. The goal is a frame rate when using the mode that is as high (or higher) than the frame rate when not using the mode, and consistent over time so that developers don't have to chase a moving target.

We strongly recommend implementing sustained mode such that the device achieves the highest possible sustained performance—not just the minimum values required to pass the test (e.g. choose the highest possible MAX frequency caps that do not cause the device to thermally throttle over time).

Note: Capping MAX clock rates is not required to implement sustained mode.

Validation

OEMs can use a CTS test (Android 7.0 and later) to verify their implementation of the sustained performance API. The test runs a workload for approximately 30 minutes and benchmarks the performance with and without sustained mode enabled:

  • With sustained mode enabled, the frame rate must remain relatively constant (test measures the percentage of change in frame rate over time and requires a <5% change).
  • With sustained mode enabled, the frame rate must not be lower than the frame rate at the end of 30 minutes with the mode disabled.

In addition, you can manually test your implementation with several CPU- and GPU-intensive workloads to ensure the device does not thermally throttle after 30 minutes of use. In internal testing, we used sample workloads including games and benchmarking apps (e.g. gfxbench).

Exclusive cores

For CPU-intensive, time-sensitive workloads, getting preempted by another thread can be the difference between making frame deadlines or not. For apps that have strict latency and frame rate requirements (such as audio or virtual reality apps), having an exclusive CPU core can guarantee an acceptable level of performance.

Devices running Android 7.0 or later can now reserve one core explicitly for the top foreground application, improving performance for all foreground apps and giving apps with high intensity workloads more control over how their work is allocated across CPU cores.

To support an exclusive core on a device:

  • Enable cpusets and configure a cpuset that contains only the top foreground application.
  • Ensure one core (this is the exclusive core) is reserved for threads from this cpuset.
  • Implement the getExclusiveCores API to return the core number of the exclusive core.

To determine which processes are scheduled on which cores, use systrace while running any workload and verify no userspace threads from applications other than the top foreground application are scheduled on the exclusive core.

To view a reference implementation for the Nexus 6P, refer to android//device/huawei/angler/power/power.c.

 

新学期领福利!购实物周边送年卡会员! T恤、键盘、双肩包等周边任选!还能解锁资源下载、VIP文章等多重会员权益! 阅读详情

相关推荐

Application Performance Management工具之pinpoint

1.背景知识Application Performance Management是什么?维基百科: In the fields of information technology and systems management, Application Performance Management (APM) is the monitoring and management of perfor

neven7的专栏 1万+

运用PowerHint改进Android系统性能表现

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

ZT's Blog 4417

性能调优的隐形守护者:Android PerformanceHintManager与高通GPU智能调度实战

本文深入解析Android PerformanceHintManager与高通Adreno GPU的智能调度协同机制,揭示性能Hint从应用到硬件层的完整传递流程。通过实战案例展示如何利用Hint机制实现游戏渲染分阶段优化和温度感知动态调整,帮助开发者在高端移动设备上实现极致性能与能效的平衡。

pytorchlight8的博客 738

ARMv8 cache的包含策略inclusive 和 exclusive之间的区别以及Cortex-A55示例详解

Inclusive cache: L2包含了所有的L1里的所有有效数据。 Exclusive cache: L1 和L2 的数据互斥,同样的一份数据不能同时存在于L1和L2。

DayDayUp 9319

Android 15 首个开发者预览版到来

作者 / 工程副总裁 Dave BurkeAndroid 15 的首个开发者预览版现已发布,以便各位开发者能与我们通力协作,打造更优秀的 Android 平台。在 Android 15 中,我们继续致力于打造一个既能提升工作效率,又能提供全新功能的平台。这些新功能旨在帮助您为种类繁多的设备创造卓越的媒体体验、最大限度地降低电池消耗、优化提升应用流畅性能,并保护用户隐私和安全。Android 能够让...

谷歌开发者 483

Android对性能要求,Android性能管理

管理Android设备的功耗和性能有助于确保应用程序在各种硬件上始终如一地顺畅运行。在Android 7.0及更高版本中,OEM可以实现对持续性能提示的支持,使应用程序能够保持一致的设备性能,并指定专属核以提高CPU密集型前台应用程序的性能。持续性能对于长时间运行的应用程序(游戏,相机,渲染脚本,音频处理),​​性能会随着设备温度限制和片上系统(SoC)引擎限制而显着变化。应用程序开发人员创建高性...

weixin_32150955的博客 591

Oracle Enterprise Performance Management system的安装

最近在学这个软件,学的很累,光搞安装就费了我N多时间...Oracle搞的东西那真叫一个烂字. 首先当然是从Oracle E-Delivery网站上下载安装文件啦.我下的是11.1.1.0.0的版本.安装平台是Win...

ctrms66804的专栏 769

Application Performance Management(APM)

hi all: 对于 周五的日志管理讨论,我查了一些资料,下面是我的一些研究:行为日志 一个APP 主要有 UI 和 网络请求, 通过这两个方向考虑: 1.网络请求情况的统计—来自后台 包含用户id号,请求时间,请求内容,请求时长,请求次数 oschina采用的也是这种机制 2.UI上用户交互的统计—来自移动端 The easy way - 通过l

丑丑鱼的博客 1991

042-15 performance Management性能管理

--******************** performance Management 性能管理 --******************** --通过EM监控性能 --Performance标签 --**...

ctxylong2013的博客 265

Teaching Performance Management System

基于C语言的教学成绩管理系统 #include void luru(int m,int n,double score[101][10]);//成绩录入函数 void shuchu(int m,int n,double score[101][10]);//成绩输出函数 void chaxun(int m,int n,double score[101][10]);//成绩查询函数 voi

jiaminghua98的博客 276

GCP application performance management lab

最后更新2022/03/19 这是这节最后一个实验了,加油! 照例先enable service,然后下载repository,再build一下。 再开一个cloud shell(点一下头部标识中的+),下载另一个用于debug的repository。在本地(cloud shell)安装一下dependency,然后本地测试,看看是否正常,这是一个摄氏华氏温度转换的小网页程序。测试OK后要转为app engine部署,照例先创建app engine,再deploy有(通过省缺的app.yaml) 转到app

weixin_42051187的博客 378

cloudera--CDH Performance Management

集群管理指南描述了如何使用Cloudera Manager在Cloudera企业部署中配置和管理集群。Cloudera Enterprise Hadoop管理员管理资源、主机、高可用性以及备份和恢复配置。Cloudera Manager管理控制台是管理员用来监视和管理集群的主要工具。您还可以将Cloudera Manager API用于集群管理任务。 Performance Management...

wjandy0211的博客 202

Advanced Analytics for Supplier Performance Management

1.背景介绍 在今天的竞争激烈的商业环境中,企业需要与供应商建立紧密的合作关系,以提高业务效率和降低成本。因此,供应商性能管理(Supplier Performance Management,SPM)成为了企业管理的关键环节。传统的SPM方法通常包括对供应商的评估、监控和改进,但这些方法往往缺乏数据驱动性和深度分析。 随着大数据技术的发展,企业越来越多地使用高级分析方法来提高供应商性能管理的效...

AI天才研究院 547

在IBM PureApplication System中启用IBM Application Performance Management监视

IBM®Application Performance Management(APM)是用于监视关键应用程序和生产中用户体验的新一代监视解决方案。 到目前为止,IBMPureApplication®System仅支持IBMTivoli®Monitoring解决方案来监视工作负载。 借助APM的可用性,您可以选择另一个监视工作负载的方法。 不幸的是,您无法在PureApplication中找到A...

cuxiong8996的博客 1128

场景5 Performance Management

场景5 Performance Management 性能调优(不能重启数据库) 索引 资源管理器 性能优化 统计分析 SQL性能分析 SPM (SQL执行计划管理) 堆表 :数据存储无序 位图索引 :适合字段重复值高的,数据仓库环境下(适合OLAP/DSS环境),存储占用空间少, DML成本高, WHERE中与或操作效率高 eg...

weixin_30950607的博客 212

索引问题引起的执行计划偏移(EBS Cost Management performance issue )

之前遇到的一个EBS性能问题,更新至CSDN元旦过后,create accounting cost management执行时间过长,还时常报错,影响正常作业;

xiaofan23z的专栏 1040

Network Management: Accounting and Performance Strategies

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpThe book concludes with chapter-length scenarios that walk you through accounting and performance management

TopMVP 462

Performance Tunables for Media Management

Media Management > Operations > Performance Tunables for Media Management Published 11/19/2010 02:50 PM...

csdn20142的博客 133

Pro Java EE 5 Performance Management and Optimization

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpPro Java EE 5 Performance Management and Optimization features proven methodology to guarantee top-performing

TopMVP 480
上一篇: Platform Power Management
下一篇: Batteryless Devices
amenable
博客等级 码龄5年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值