写点什么

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

评论

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

判断TikTok节点IP的纯净度高不高的几个方法

Ogcloud

tiktok运营 tiktok节点 tiktok网络 tiktok封号 tiktok代理节点

基于事件驱动构建 AI 原生应用

阿里巴巴云原生

阿里云 云原生

通义灵码融入南京大学 AI 编程创新课,与高校数字化创新人才培养同行

阿里云云效

阿里云 云原生

云桌面年终狂欢,多重福利等你来拿!

Finovy Cloud

云主机 云服务器 云桌面 云电脑

一行代码都不改,Golang 应用链路指标日志全知道!

阿里巴巴云原生

阿里云 云原生

浅谈YashanDB三权分立

YashanDB

数据库 yashandb 崖山数据库 三权分立

知乎启用AutoMQ替换Kafka,开辟成本优化与运维提效新纪元

AutoMQ

Java 数据库 kafka 客户案例

改变仿真游戏规则,Altair的AI与HPC技术创新仿真之路

Altair RapidMiner

数据分析 仿真 CAE #人工智能 altair

Spring AI Alibaba 配置管理,用 Nacos 就够了

阿里巴巴云原生

阿里云 云原生

企业如何挑选OKR目标管理软件?9款工具功能全面分析

易成研发中心

YashanDB 开机自启

YashanDB

数据库 yashandb 崖山数据库 开机自启

YashanDB在地理信息系统(GIS)领域的关键功能和技术优势

YashanDB

yashandb 崖山数据库 地理信息系统

苹果m1能玩steam吗,苹果笔记本玩steam游戏教程

阿拉灯神丁

游戏 MacBook steam M1芯片 CrossOver Mac下载

TikTok账号封号原因有哪些?

Ogcloud

TikTok tiktok运营 TikTok养号 tiktok封号

从仪表盘探索 MongoDB 关键指标

巴辉特

翻倍只是山寨币季的点火阶段:市场分歧与未来趋势

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

零代码构建AI Agent,解读华为云AI原生应用引擎的架构与实践

华为云开发者联盟

大模型 AIGC AI Agent AI 基础设施

客户案例|大模型加持智能会议,金融机构实现“写纪要”到“审纪要”的飞跃

澜舟孟子开源社区

人工智能 大模型 智能办公

Supersonic 平台上线Top Creatives Library 功能,为手游开发者打造广告投放素材库

极客天地

首个被人类骗钱的 AI 诞生;微信公众号后台新增「AI 配图」功能丨 RTE 开发者日报

声网

探索1688阿里巴巴API接口:图片搜索商品列表(拍立淘)与店铺所有商品列表的实战应用

代码忍者

API 接口 pinduoduo API

人事人才信息管理系统:2024年10大推荐系统

易成研发中心

从开发者工具转型 AI 呼叫中心,这家 Voice Agent 公司已服务 100+客户

声网

通义灵码融入南京大学 AI 编程创新课,与高校数字化创新人才培养同行

阿里巴巴云原生

阿里云 云原生

观测云集成 Lark SSO 最佳实践

观测云

SSO

揭秘UGO SQL审核功能4大特性,让业务平滑迁移至GaussDB

华为云开发者联盟

GaussDB UGO SQL审核 #SQL

定制化NFT链游DAPP开发:一站式解决方案助力游戏创新

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

华为技术专家出品,《华为开发者空间案例指南》带你玩转云上20+场景应用开发

华为云开发者联盟

#Serverless 鲲鹏计算 AI 基础设施

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