写点什么

ART 云配置文件,提高安卓应用的性能

  • 2019-04-12
  • 本文字数:929 字

    阅读完需:约 3 分钟

ART云配置文件,提高安卓应用的性能

安卓在版本 Pie 中第一次引入了ART优化配置文件,这个新特性利用发送到 Play Cloud 的数据大大缩短了应用在安装或更新后的启动时间。根据谷歌公布的数据显示,应用的启动速度平均提高了 15%,最优情况下可达到 30%。


从版本 Nougat 开始安卓就已经使用 PGO(Profile guideed Optimization-性能分析引导优化)来优化其运行时。这项技术能够动态剖析应用的内存和存储使用情况,并识别出热区代码。PGO 的缺点是它只能依赖单个设备或用户的数据,这使得优化过程非常缓慢。通过 Play Cloud 来整合更多用户和设备的数据,ART 性能分析明显加快了这个优化过程,而且还可以反过来把优化结果应用到所有用户。


很多情况下,开发者会逐步推出他们的应用,比如在正式版之前会发布不同的测试版本,而这时候上述优化就变得更加有用。它使我们在初始测试阶段就可以对应用进行剖析,确定热点代码和优化选项,从而让以后的用户可以直接获益。


为实现这种机制,ART 在 Play Cloud 中的剖析阶段产生了一个核心代码配置文件,这个文件包含了很多匿名的聚合数据,例如,最常用代码的路径、启动时加载的类以及启动时和启动后要执行的代码等相关信息。代码配置文件在 Play Cloud 中以“.deb”格式的元文件存在,元文件可以直接安装到设备,并且对开发人员完全透明。


利用代码配置文件中的信息,谷歌采取了一系列技术来提高应用的性能,包括应用镜像、代码预编译以及字节码重新布局等。


应用镜像是应用启动时所使用的预初始化类的内存映射。在应用启动时,镜像将会直接映射到堆内存。类似地,应用启动时也开始执行代码预编译的目标字节码。字节码是经过预编译和优化的,因此大大节省了 JIT 编译器的工作时间。最后,字节码重新布局是为了保持应用启动时使用的代码能够尽可能紧凑,这样应用启动后代码可以立即执行,从而节省了加载时间。


正如前面所提到的,根据谷歌的统计数据,在经过 ART 性能分析优化之后,应用的平均启动时间提高了 15%,很多应用甚至提高了 20%。该数据显示,除了谷歌自己的应用,还有超过 30000 个外部应用也有所改进。


未来,谷歌将向所有开发者开放 ART 性能优化信息,这样开发者就能够基于用户的真实性能数据来改进他们的应用了。


查看英文原文ART Cloud Profiling to Improve Android App Performance


2019-04-12 08:004122

评论

发布
暂无评论
发现更多内容

应用实践 | Apache Doris 在网易互娱的应用实践

SelectDB

MySQL 数据库 最佳实践 apache doris 数据优化

新一代政务云的“前移”与“致远”

云计算

LeaRun.Java表单快速开发工具

力软低代码开发平台

InnoDB体系架构

龙空白白

MySQL InnoDB

如何高效的进行接口测试?【工具篇】

Liam

测试 Postman 接口测试 API接口管理 接口测试工具

直播回顾 | 传统应用进行容器化改造,如何既快又稳?

BoCloud博云

云原生 容器云 应用

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南【附网盘资源】

伤心的辣条

Python 程序员 软件测试 IT 自动化测试

给你一个项目,你将如何开展性能测试工作?

伤心的辣条

Python 程序员 IT 自动化测试 接口测试

转行软件测试跳槽到新公司,工作如何快速上手?

伤心的辣条

Python 程序员 软件测试 自动化测试 接口测试

前端工程化:保姆级教学 Jenkins 部署前端项目

伤心的辣条

Python 程序员 jenkins 自动化测试 接口测试

CVPR2022 |小红书首创多图交互建模挑战热门研究课题,大幅提升行人重识别性能

小红书技术REDtech

Transformer CVPR2022 行人重识别

测试员该知道的软件测试流程,你都知道吗?

伤心的辣条

Python 程序员 软件测试 IT 自动化测试

打造软件供应链安全平台,「安势信息」完成数千万元天使轮融资

安势信息

云上360行丨深耕快消品行业数字化转型,纷享销客与华为云合力同行

华为云开发者联盟

人工智能 modelarts 快消品 纷享销客

UI自动化测试框架搭建-优化企业微信通知

伤心的辣条

Python 程序员 软件测试 自动化测试 UI自动化

养老金融政策频出,市场有多大?

易观分析

养老消费

三星堆重大发现!信息量巨大

Dylan

三星堆 四川省 文物

CloudTTY:下一代云原生开源 Cloud Shell

Daocloud 道客

Kubernetes 云原生 开源项目 网页命令行

国际SaaS企业有哪些机遇和挑战

ToB行业头条

Git 不要只会 pull 和 push,学学这 5 条提高效率的命令

CRMEB

35人首次上榜、行者皆勇者——创业邦3040新青年创投峰会圆满落幕

创业邦

安势信息加入OpenSSF (开源安全基金会), 共建软件供应链安全

安势信息

Linux DevOps SCA工具 opensource

3 个技巧来破解你可以立即使用的 Flutter 生产力!

坚果

6月月更

俄航天局局长:外星生命或正在研究人类文明

Dylan

俄罗斯 外星人 航天局

2022中国信通院安全运营发展论坛成功召开

中国IDC圈

安全

博云《应用上容器指南》首发!详解应用容器化改造

BoCloud博云

容器 云原生 容器云 应用

元气部落仿站开发,元气部落盲盒系统APP开发

WDL22119

盲盒小程序开发 盲盒源码 盲盒H5开发 盲盒APP系统开发 元气部落仿站开发

OSPO如何帮助保护你的软件供应链

安势信息

开源 DevOps 开源社区 SCA opensource

国家先进计算产业创新(宜昌)中心正式落地 由中科曙光、升哲科技联合运营

SENSORO

人工智能 物联网 新基建 智慧城市

Vue-8-计算属性和侦听属性

Python研究所

6月月更

GPU渲染全解读:GPU渲染器的发展与对比

Finovy Cloud

渲染器 GPU服务器

ART云配置文件,提高安卓应用的性能_移动_Sergio De Simone_InfoQ精选文章