写点什么

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:004231

评论

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

金川集团:建设世界一流财务管理体系,向万亿营收冲刺

用友BIP

Java开发分析工具:JProfiler 14 for Mac 激活版

你的猪会飞吗

JProfiler 14激活版 JProfiler 14 mac JProfiler 14破解版

华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发

华为云开发者联盟

HarmonyOS 端云协同 ArkTS 开发者、

AB Micro850笔记 LD 计数器 ctd ctu

万里无云万里天

自动化 PLC 工厂运维

VMware Aria Automation Orchestrator 8.18 发布,新增功能概览

sysin

vmware aria

Java 性能分析 5 大工具

FunTester

厌倦了黑底白字?用 Go 给终端点颜色瞧瞧!

江湖十年

终端 命令行 Go web #go

还不知道这个原则的程序员,要小心了

禅道项目管理

程序员 软件测试 代码规范 测试人员 规范优先原则

VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布

sysin

esxi dell hpe

SpringBoot3实战:实现接口签名验证

江南一点雨

鸿蒙 Next 实战: 环境搭建

北桥苏

鸿蒙 鸿蒙Next HarmonyOS NEXT

重磅发布!国内首部《智能化软件开发落地实践指南》免费下载

华为云开发者联盟

代码开发 大模型 人工智能’ CodeArts

传统身份安全的局限性

芯盾时代

身份安全 统一身份认证 零信任模型

技术解读GaussDB (for MySQL)流控机制

华为云开发者联盟

GaussDB 流控 MySQL 5.7

AB Micro850笔记 ccw 文档生成器

万里无云万里天

自动化 PLC 工厂运维

AB Micro850笔记 LD 结构化数据

万里无云万里天

自动化 PLC 工厂运维

AB Micro850笔记 LD 用户自定义功能块

万里无云万里天

自动化 PLC 工厂运维

阿里巴巴API:赋能电商创新,革新1688商品详情获取方式

代码忍者

API 测试 pinduoduo API

VMware ESXi 8.0U3 集成 AQC 网卡定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

sysin

esxi aqc

GitHub上 Star 数量最多的 Airtable 开源替代者

NocoBase

GitHub 开源 低代码 Airtable 无代码

云栖实录 | MaxCompute 迈向下一代的智能云数仓

阿里云大数据AI技术

大数据 数据仓库 云数据 MaxCompute Data+AI

AB Micro850笔记 LD 计时器 ton tof

万里无云万里天

自动化 PLC 工厂运维

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