Re: [新聞] 解讀| 華為方舟編譯器是如何實現Android

作者: Vett (Vett)   2019-04-26 14:37:24
: 華為方舟編譯器究竟改變了什麼?
: 首先,方舟編譯器是配合華為EMUI 9.1 操作系統而打造的一個編譯工具。
: 按照華為方面的說法,雖然方舟編譯器是在2019 年4 月11 日發布,但是華為早在5 年前就開始佈局,2013 年推出了自研編譯器HCC,2014 年編程大神Fred Chow 加入,擔任華為編譯器技術首席科學家,2016 年華為成立編譯器與編程語言實驗室,投入了數百的專家團隊經歷了多次嘗試,才在EMUI 9.1 上實現了機器代碼的翻譯。
: 按照上述Android 操作系統的代碼運行邏輯,華為編譯器最大的優勢在於,它繞過了VM。
重點一
: 簡單來說,在百人專家團隊的打造下,華為方舟編譯器可以將高級語言(Java)直接變成機器碼,無需再通過Android 操作系統中內置的VM 編譯器。按照華為方面的說法:方舟編譯器編譯的應用在開發階段就已完成;也就是說,只要是經過編譯器編譯的應用,在應用市場上上架了以後,用戶下載APK 的就是編譯過的了。
: 換句話說,通過方舟編譯器,開發者的應用在下載之前就已經轉化成為機器可以識別的代碼,因而可以在手機上快速安裝、啟動和運行,而無需在經過VM 的編譯——某種程度上,方舟編譯器是將編譯過程提前到應用開發階段,從而大幅度減少了智能手機和操作系統的運行負擔。
: 按照華為方面的說法,採用華為編譯器之後,提升效果如下:
: EMUI 9.1 僅僅對系統組件System Server 應用了方舟編譯器之後,系統流暢速度提升了24%,系統響應速度提升了44%;
: 第三方應用(目前採用了新浪微博極速版)的操作流暢度提升了60%。
: 不可忽視的是,實際上,要想實現華為所言的效果,就首先需要第三方的應用開發者採用方舟編譯器對自家的App 提前進行改造,從而能夠上架華為應用商店——這也是余承東在4 月11 日的發布會呼籲開發者積極參與的原因。
: 除了代碼編譯,方舟編譯器也提供了更高效的內存機制,它與Android 內存回收的不同之處在於:
: 內存管理是程序開發與運行時需要重點考慮的部分,也和系統流暢度息息相關。Android 在內存回收上採用集中回收機制,發聲全局回收時更需要暫停應用,這也是隨機卡頓的根因之一。而方舟編譯器提供了更高效的內存回收機制,回收時無需暫停應用,隨時用隨時回收,大大提高運行速度。
重點二
: 另外,在方舟編譯器的編譯環境下, 還可以對代碼進行優化。目前,由於Android ART 的AoT 和JIT 動態編譯因為是運行在手機上,受資源所限,因而只能使用簡單的優化算法。而方舟編譯器由於是在應用開發階段進行編譯,所以可以允許不同應用靈活採用不同的編譯優化方案,而且因為在開發環境編譯不會受到手機性能的限制,可以使用更多先進的優化算法,從而使得每個應用的性能達到最佳。
: 2019,全面開源
: 其實,在4 月11 日的發布會上,華為方面已經表示,方舟編譯器也將開放給第三方合作夥伴,希望共同構建開發者生態的“方舟朋友圈”。
: 目前,華為已經宣布方舟編譯器會從2019 年全面開源;其中,華為將在2019 年8 月的華為終端開發者大會宣布方舟編譯框架代碼開源,後續會在2019 年11 月的綠盟開發者大會實現完整方舟編譯器代碼開源。
: 對於華為方舟編譯器的開源,雷鋒網將保持關注。
: 雷鋒網(公眾號:雷鋒網)注:本文部分內容編自知乎平台作者weishu的回答內容,已經獲得作者授權。
: https://m.leiphone.com/news/201904/oshefuZTLnU00mJO.html
: 心得:好吧,其實我整天都看不懂,只知道好像很厲害
: 有厲害的人可以解釋個嗎感謝
: 這樣子卓卓是不是在效能上要成功反超果果了呢!
: 太令人期待啦!
這系列文章不知道能不能釣到 jserv
反正我先起個頭
就目前的的公開資訊吧
方舟編譯器這個名字代表了他的巨大工作量
我猜的啦 底層就是重做一套語言再加上相容 Java
而且只有華為自己的OS才能發揮功能
除非Google把整套解決方案放到Android裡面
不然要形成 iOS 的生態系還是難啦
就大陸幾個大型app會投資源下去玩而已
不過看方舟編譯器的效果確實明顯降低了 Android 的 jit 的時間
不過有人還沒習慣 Android 就是會這樣頓一下嗎
哈哈哈

Links booklink

Contact Us: admin [ a t ] ucptt.com