0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

媲美iOS 華為方舟編譯器它的玄乎所在

h1654155972.5890 ? 來源:fqj ? 2019-05-07 11:42 ? 次閱讀

自華為P30系列發(fā)布以來,火了的除了手機(jī)新品本身以外,還有近日越來越“紅”的黑科技——華為方舟編譯器。

改造Android、媲美iOS、安卓手機(jī)從此不卡頓……一時(shí)間,輿論對(duì)華為方舟編譯器的渲染近乎神話。據(jù)說自發(fā)布會(huì)結(jié)束后,華為軟件內(nèi)部團(tuán)隊(duì)的電話幾乎被打爆,很多開發(fā)者都想了解方舟編譯器的更多信息

那么,華為方舟編譯器究竟是干嘛的?被余承東稱為“安卓性能革命”的方舟編譯器對(duì)于華為手機(jī)的戰(zhàn)略發(fā)展有何意義?對(duì)于Android陣營(yíng)以及整個(gè)產(chǎn)業(yè)又將帶來哪些影響呢?

傳統(tǒng)編譯器繞不過去的“坎兒”

首先,來看看啥是編譯器?

按照定義:編譯器是將“一種語言(通常為高級(jí)語言)”翻譯成能直接被計(jì)算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼,編譯器的效率將直接影響程序運(yùn)營(yíng)性能和效率。

簡(jiǎn)單來說,編譯器就是人類和機(jī)器溝通的橋梁。比如一部手機(jī),里面的程序是由程序員使用高級(jí)語言開發(fā)的,當(dāng)我們要啟動(dòng)某個(gè)程序(比如打開一個(gè)APP)的過程中,編譯器扮演著“翻譯者”的角色,把高級(jí)語言轉(zhuǎn)換成機(jī)器能讀懂的機(jī)器碼,并按照指令運(yùn)行。

編譯器如此神通廣大,但在安卓的世界里,它卻有一道繞不過去的“坎兒”那就是VM。VM是運(yùn)行在安卓程序中的一個(gè)虛擬計(jì)算機(jī),它還帶了2個(gè)翻譯——解釋器和編譯器。當(dāng)用戶打開APP過程中,虛擬機(jī)開始運(yùn)行,為了把高級(jí)語言轉(zhuǎn)換成機(jī)器能聽懂的語言,虛擬機(jī)中有解釋器和編譯器兩個(gè)翻譯在運(yùn)行;解釋器好像現(xiàn)場(chǎng)翻譯似的,演講者講一句它就停下來翻譯一句給編譯器聽,然后編譯器結(jié)合上下文一次翻譯一大段內(nèi)容讓機(jī)器聽懂。兩個(gè)翻譯同時(shí)發(fā)聲,手機(jī)聽到的內(nèi)容只能是斷斷續(xù)續(xù),一邊翻譯一邊執(zhí)行,這也是安卓卡頓的一個(gè)重要來源。

對(duì)此,華為消費(fèi)者BG軟件部總裁王成錄指出,目前安卓系統(tǒng)主要在手機(jī)上進(jìn)行編譯,雖然谷歌一直在不斷提升原生安卓編譯器效率,比如安卓5.0版本之前安卓采用解釋執(zhí)行+JIT方式,安卓6.0開始嘗試ART虛擬機(jī),再之后采用解釋執(zhí)行+JIT+AoT綜合模式。不過為了解決安卓程序開發(fā)的兼容性問題,ART虛擬機(jī)長(zhǎng)期存在,安卓編譯器可以通過JIT和AoT編譯大部分Java語言,但對(duì)于Java的動(dòng)態(tài)特性無能為力,仍然需要邊解釋邊執(zhí)行,這也導(dǎo)致了安卓系統(tǒng)流暢性下降。

四大亮點(diǎn)

從“邊翻譯邊執(zhí)行”到提前編譯機(jī)器碼

針對(duì)安卓系統(tǒng)面臨的流暢性問題尤其是編譯器問題,華為方舟編譯器的特性恰恰能夠繞過VM,消除虛擬機(jī)動(dòng)態(tài)編譯的額外開銷,實(shí)現(xiàn)了開發(fā)和運(yùn)行效率的兼容并舉,從“邊翻譯邊執(zhí)行”到提前編譯機(jī)器碼,直接執(zhí)行。

據(jù)王成錄介紹,華為方舟編譯器主要有以下四大亮點(diǎn):

亮點(diǎn)1.首個(gè)多語言聯(lián)合優(yōu)化的編譯器,消除了跨語言調(diào)用開銷。當(dāng)前大部分安卓應(yīng)用都涉及不同開發(fā)語言,不同語言形成的代碼需要在運(yùn)行態(tài)中進(jìn)行協(xié)同從而產(chǎn)生額外消耗,而方舟編譯器是業(yè)界首個(gè)多語言聯(lián)合優(yōu)化的編譯器,開發(fā)者在開發(fā)環(huán)境中可以一次性將多語言統(tǒng)一編譯為一套機(jī)器碼,運(yùn)行時(shí)無需產(chǎn)生跨語言帶來的額外消耗,并可以進(jìn)行跨語言的聯(lián)合優(yōu)化,提升運(yùn)行效率。

亮點(diǎn)2.程序運(yùn)行時(shí)無需依賴虛擬機(jī),減少了資源占用,同時(shí)實(shí)現(xiàn)了高效的內(nèi)存回收機(jī)制。

亮點(diǎn)3.第三,方舟編譯器可以針對(duì)不同應(yīng)用靈活編譯優(yōu)化。

亮點(diǎn)4.對(duì)于開發(fā)者學(xué)習(xí)和使用成本非常低。以上這些技術(shù)亮點(diǎn),均能給應(yīng)用開發(fā)者帶來更多優(yōu)化自己應(yīng)用的機(jī)會(huì)。

超越蘋果三星的重要加碼

用華為的話說,方舟編譯器編譯的應(yīng)用在開發(fā)階段就已完成。也就是說,只要是經(jīng)過編譯器編譯的應(yīng)用,在應(yīng)用市場(chǎng)上上架了以后,用戶下載的就是編譯過的了。

華為測(cè)試結(jié)果顯示,使用方舟編譯器最終將提升24%的系統(tǒng)操作流暢度,提升44%的系統(tǒng)響應(yīng)能力,以及提升60%的三方應(yīng)用操作流暢度,“Android系統(tǒng)將比iOS系統(tǒng)還要流暢”。這一技術(shù)將正式開源給開發(fā)者,讓所有人都可以使用方舟編譯器對(duì)應(yīng)用預(yù)編譯。

在華為看來,方舟編譯器作為全新的系統(tǒng)及應(yīng)用的編譯和運(yùn)行機(jī)制,從DNA層面對(duì)安卓進(jìn)行了改造,解決了安卓應(yīng)用邊解釋邊運(yùn)行的低效問題,讓手機(jī)能直接聽懂“高級(jí)語言”,可以說是近幾年來安卓陣營(yíng)最大的根本性革新。能夠大幅降低安卓系統(tǒng)隨機(jī)卡頓的問題,打破了人機(jī)之間的藩籬,讓用戶能直觀感受到的就是使用體驗(yàn)更加持久流暢。

筆者認(rèn)為,也許采用方舟編譯器之后安卓系統(tǒng)以及應(yīng)用將比iOS系統(tǒng)還要流暢這個(gè)說法可能言過其實(shí),因?yàn)?a href="http://ttokpm.com/v/tag/4103/" target="_blank">iPhone和其搭載的iOS系統(tǒng)獨(dú)樹一幟、在系統(tǒng)流暢性方面仍然領(lǐng)先安卓。但有了方舟編譯器,安卓系統(tǒng)流暢性差、應(yīng)用開啟和運(yùn)行速度勢(shì)必將得到大幅提升,縮小與iOS的差距,華為也成為首家在系統(tǒng)層面主動(dòng)尋求顛覆式創(chuàng)新的手機(jī)廠商

對(duì)于志在超越蘋果的華為來說,縮小安卓與iOS系統(tǒng)流暢性的差距,也將助力華為手機(jī)在超越蘋果尤其是高端市場(chǎng)更進(jìn)一步增加實(shí)力;而對(duì)于超越三星成為成全球第一手機(jī)廠商的目標(biāo)來說,雖然方舟編譯器將正式開源給開發(fā)者,使用方舟編譯器對(duì)應(yīng)用進(jìn)行預(yù)編譯的APP也可能將在其他品牌手機(jī)上適配使用,但估計(jì)華為出品的方舟編譯器應(yīng)該還是在華為自家的EMUI系統(tǒng)上更加匹配、性能才能夠得到充分發(fā)揮,因此對(duì)于旨在超越三星奪冠的華為來說,方舟編譯器也將成為其爭(zhēng)冠之路上的重要砝碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 華為
    +關(guān)注

    關(guān)注

    215

    文章

    34164

    瀏覽量

    249692
  • 蘋果
    +關(guān)注

    關(guān)注

    61

    文章

    24185

    瀏覽量

    194376
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48916
  • 方舟編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    175

原文標(biāo)題:媲美iOS?華為方舟編譯器真有那么玄乎嗎?

文章出處:【微信號(hào):C114-weixin,微信公眾號(hào):C114通信網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AI編譯器技術(shù)剖析

    隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進(jìn)入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如將高級(jí)語言編寫的源代碼轉(zhuǎn)換為機(jī)器可執(zhí)行的代碼,還融入了人工智能技術(shù)
    的頭像 發(fā)表于 07-17 18:28 ?1244次閱讀

    人工智能編譯器與傳統(tǒng)編譯器的區(qū)別

    人工智能編譯器(AI編譯器)與傳統(tǒng)編譯器在多個(gè)方面存在顯著的差異。這些差異主要體現(xiàn)在設(shè)計(jì)目標(biāo)、功能特性、優(yōu)化策略、適用范圍以及技術(shù)復(fù)雜性等方面。以下是對(duì)兩者區(qū)別的詳細(xì)探討,旨在全面解析其內(nèi)在差異。
    的頭像 發(fā)表于 07-17 18:19 ?1345次閱讀

    Meta發(fā)布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺(tái)上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構(gòu)建,并融合了先進(jìn)的代碼優(yōu)化和編譯器功能。LLM編譯器的推出,標(biāo)志著Meta在人工智能領(lǐng)域的又一重大突破,將
    的頭像 發(fā)表于 06-29 17:54 ?1325次閱讀

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設(shè)計(jì)的優(yōu)化C/C++編譯器。建立在強(qiáng)大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸
    的頭像 發(fā)表于 06-04 15:31 ?1191次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    C語言:嵌入式開發(fā)中的關(guān)鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關(guān),需要使用C語言來讀寫底層寄存、存取數(shù)據(jù)、控制硬件等,C語言和硬件之間由編譯器來聯(lián)系,一些C標(biāo)準(zhǔn)不支持的硬件特性操作,由編譯器提供。
    發(fā)表于 04-26 14:53 ?429次閱讀
    C語言:嵌入式開發(fā)中的關(guān)鍵<b class='flag-5'>編譯器</b>角色

    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發(fā)表于 02-18 10:02 ?715次閱讀
    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉<b class='flag-5'>編譯器</b>)

    RL78系列的C編譯器包數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《RL78系列的C編譯器包數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-26 15:55 ?0次下載
    RL78系列的C<b class='flag-5'>編譯器</b>包數(shù)據(jù)手冊(cè)

    華為舉辦鴻蒙生態(tài)千帆啟航儀式,余承東公布HarmonyOS NEXT開放申請(qǐng)

    據(jù)余承東介紹,為實(shí)現(xiàn)核心競(jìng)爭(zhēng)力的突破,華為通過多年的努力構(gòu)建出一套包含鴻蒙內(nèi)核、ArkTS/倉(cāng)頡編程語言、方舟編譯器/畢昇編譯器、ArkUI以及盤古AI大模型等在內(nèi)的完整生態(tài)體系。
    的頭像 發(fā)表于 01-19 09:34 ?687次閱讀

    Triton編譯器的原理和性能

    為Torch inductor的基本組件,以合成針對(duì)GPU的高效內(nèi)核。與傳統(tǒng)庫(kù)使用相比,這具有多種優(yōu)勢(shì)。允許創(chuàng)建各種各樣的融合,它可以獨(dú)立調(diào)整,并且的內(nèi)存占用更小。本次演講將介紹Triton編譯器,并描述使其能夠以最少的用戶
    的頭像 發(fā)表于 12-16 11:22 ?2303次閱讀
    Triton<b class='flag-5'>編譯器</b>的原理和性能

    TVM編譯器的整體架構(gòu)和基本方法

    有將近兩個(gè)月沒有學(xué)習(xí)一些新東西,更新一下博客了。一直在忙公司的一個(gè)項(xiàng)目,是做一款支持LSTM和RNN的通用架構(gòu)加速IP。自己恰好負(fù)責(zé)指令編譯工作,雖然開始的指令比較粗糙,沒有一套完整的編譯器架構(gòu)
    的頭像 發(fā)表于 11-30 09:36 ?1942次閱讀
    TVM<b class='flag-5'>編譯器</b>的整體架構(gòu)和基本方法

    編譯器的優(yōu)化選項(xiàng)

    一個(gè)程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個(gè)重要的考量。要編寫高性能的程序,第一,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu);第二,應(yīng)該編寫編譯器能夠有效優(yōu)化以轉(zhuǎn)換成高效可執(zhí)行代碼的源代碼,要做到
    的頭像 發(fā)表于 11-24 15:37 ?767次閱讀
    <b class='flag-5'>編譯器</b>的優(yōu)化選項(xiàng)

    嵌入式j(luò)avascript編譯器的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《嵌入式j(luò)avascript編譯器的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-30 11:29 ?0次下載
    嵌入式j(luò)avascript<b class='flag-5'>編譯器</b>的設(shè)計(jì)與實(shí)現(xiàn)

    新版編譯器的設(shè)計(jì)思路和優(yōu)化方法

    小程序編譯器在小程序開發(fā)、預(yù)覽、發(fā)布各個(gè)階段都需要使用,因此編譯器性能會(huì)直接影響到開發(fā)者開發(fā)效率,也會(huì)影響到開發(fā)者工具的使用體驗(yàn)。 由于舊版的編譯器(基于 webpack4)在構(gòu)建大型項(xiàng)目時(shí)會(huì)很慢,內(nèi)存占用也高,一直被開發(fā)者吐槽
    發(fā)表于 10-13 11:21 ?264次閱讀
    新版<b class='flag-5'>編譯器</b>的設(shè)計(jì)思路和優(yōu)化方法

    嵌入式開發(fā)中的C語言編譯器設(shè)置

    編譯器的語義檢查很弱小,甚至還會(huì)“掩蓋”錯(cuò)誤。現(xiàn)代的編譯器設(shè)計(jì)是件浩瀚的工程,為了讓編譯器設(shè)計(jì)簡(jiǎn)單一些,目前幾乎所有編譯器的語義檢查都比較弱小。為了獲得更快的執(zhí)行效率,C語言被設(shè)計(jì)的足
    發(fā)表于 10-11 12:43 ?584次閱讀

    OpenHarmony 的js引擎用的是方舟編譯器

    OpenHarmony 的js引擎用的是方舟編譯器嗎?方舟編譯器不是用來編譯嗎?
    發(fā)表于 10-09 09:32