产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

Android 将引入 AOT 编译器

  • 2014-07-14
  • 本文字数:1129 字

    阅读完需:约 4 分钟

Google 已经用一个 AOT 编译器替代了 Android 中的 JIT 编译器。这个 AOT 编译器可以在安装阶段把字节码转换成原生的机器码。

2014 年的 I/O 大会上,Google 发布了下一代 Android 操作系统,代号“L 版本”,这个版本有一些重大的系统架构方面的修改,其中之一就是用一个全新的运行时库,就叫 Anroid RunTime(ART)以及 AOT 编译器替代了 Dalvik 虚拟机和它的 JIT 编译器。

在不同的条件下,AOT 和 JIT 编译策略具有不一样的优势和缺点。Google 实现的 ART 保持了 JIT 编译策略对硬件的灵活性,同时调整了 JIT 对于空间和速度的取舍。这种 AOT 策略是针对 Android 使用的硬件平台优化的。其他移动平台针对它们的硬件和软件环境,会有不同的选择。

  • iOS 主要依靠静态编译,在开发者的电脑上,构建过程会产生优化过的原生指令,然后直接上传这个应用。
  • Windows Phone 使用云编译策略,安装时应用商店会先生成那些依赖于具体硬件的指令,然后再把应用安装到手机上。

这两种策略分别是这两家公司针对自己情况的最优选择,苹果紧紧地控制着硬件生态系统,而微软的系统则有着五花八门的硬件执行环境。

在这个新的 Android 运行时库的实现中,操作系统在应用安装的时候,直接在设备上把字节码转换成机器码,并把这些原生的指令存储起来,以备今后使用。无论是在永久存储区域还是内存方面,这份原生指令都会占更大的空间。和 Dalvik 加传统的 JIT 编译器相反,每次应用执行的时候不需要重复这个编译过程。

但 ART 也丧失了 JIT 编译的一个关键优势:在手机、平板电脑或其他设备上安装应用程序的时候,操作系统只有知道底下运行的硬件细节,才能把应用转换成原生的机器码。它知道硬件是不会变的,所以才能针对这种硬件产生最优的指令。这和静态编译器形成了鲜明的对比,静态编译器通常不会针对特定的处理器做优化,也不会为不同的处理器产生多份指令。

Google 声称 ART 总体上能把性能提高到 Dalvik 的 200%,这部分是因为 AOT 编译器对指令的全貌有一个概览,而 JIT 编译器只执行本地优化。Andre Frumusanu 在为 AnandTech 网站写的文章中指出“异常检查等带来的开销大大减少,方法和接口调用的速度极大地提升了”。

因为 ART 编译出来的是一个 ELF 可执行文件,所以内核可以管理它的代码页——这个结果可能会大大改进内存管理,并且降低内存使用。

Android L 现在有一个开发者预览版,正式版预计将在秋天发布,所以最终能提升到什么程度,以及是否会有更多的取舍,还要拭目以待。这个版本在通用的编译方面看起来并没有多大进步,Google 对此并没有什么新计划,也没有在跟踪这件事。随着硬件功能的不断进步,Google 不断关注的是针对Android 特定硬件的优化编译策略。

参考原文链接: http://www.infoq.com/news/2014/07/ahead-of-time-compiler-os

2014-07-14 04:119178
用户头像

发布了 77 篇内容, 共 36.5 次阅读, 收获喜欢 26 次。

关注

评论

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

自定义MyBatis拦截器更改表名

emanjusaka

Java mybatis

CVPR2023优秀论文 | AIGC伪造图像鉴别算法泛化性缺失问题分析

百度Geek说

算法 AIGC 企业号10月PK榜

计算机科学系举办“火焰杯”软件测试开发选拔赛颁奖仪式

霍格沃兹测试开发学社

Java基于API接口爬取商品数据

Noah

Mac电脑屏幕录像 Iris最新直装激活版

mac大玩家j

录屏软件 Mac软件 Mac好用的屏幕录制软件

NFT聚合平台开发:综合指南NFT开发 DAPP开发

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

后 Cookie 时代如何实现精准的用户运营与管理?

Authing

低代码 Idaas 用户管理 Authing 用户运营

行云管家祝各位程序员节日快乐!

行云管家

程序员 程序员节

文心一言 VS 讯飞星火 VS chatgpt (119)-- 算法导论10.3 4题

福大大架构师每日一题

福大大架构师每日一题

龙智汽车行业客户案例:Jira数据中心版助客户解锁高效项目管理

龙智—DevSecOps解决方案

Jira 案例 汽车

当年很流行,现在已经淘汰的前端技术有哪些?

互联网工科生

前端 vite Bun Astro

【CIKM 2023】扩散模型加速采样算法OLSS,大幅提升模型推理速度

阿里云大数据AI技术

算法

测吧(北京)科技有限公司项目总监王雪冬一行访问计算机学院探讨合作

霍格沃兹测试开发学社

2024深圳电子展

AIOTE智博会

电子展 深圳电子展 电子信息展 深圳电子信息展

谷歌SEO是什么,它对外贸企业有什么好处?

九凌网络

ARB链(Arbitrum)ARBT代币合约质押挖矿系统开发(源码技术搭建)

l8l259l3365

深度学习应用开发示例之“定位编码”

矩视智能

深度学习 机器视觉

Perforce发布《2023游戏开发与设计现状报告》,洞察游戏行业的改变与2023年最令人兴奋的行业动向

龙智—DevSecOps解决方案

游戏开发

打造次世代分析型数据库(七):向量化计算层缓存

腾讯云大数据

数据库

中国大模型开源创新与合作的新篇章 | 2023 CCF中国开源大会

OpenI启智社区

开源 大模型 OpenI启智社区 CCF中国开源大会 鹏城·脑海大模型

手把手|支付宝异步通知如何使用

盐焗代码虾

安全 支付宝 异步通知

2023年行云绽放&傲冠股份厨艺比拼团建活动圆满结束

行云管家

行云 团建 傲冠

外贸企业应该如何做好外贸网站优化细节

九凌网络

外贸网站seo优化教程!

九凌网络

面对“双十一”这样的大促,品牌方还能多做些什么?

博文视点Broadview

NFTScan | 10.16~10.22 NFT 市场热点汇总

NFT Research

NFT NFTScan nft工具

第二届、第三届<火焰杯>软件测试开发选拔赛河北赛区颁奖典礼落幕

测试人

软件测试

Balsamiq Wireframes for mac(线框图工具) v4.7.4永久激活版

mac

苹果mac Windows软件 Balsamiq Wireframes 线框图软件

浅谈RabbitMQ的延迟队列

高端章鱼哥

RabbitMQ 延迟队列

优化销售策略,突破企业全面预算管理难题

智达方通

智达方通 全面预算管理 销售策略

Android将引入AOT编译器_移动_Seth Cousins_InfoQ精选文章