看板 MobileComm 關於我們 聯絡資訊
: 華為方舟編譯器究竟改變了什麼? : 首先,方舟編譯器是配合華為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 就是會這樣頓一下嗎 哈哈哈 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 91.121.50.14 ※ 文章網址: https://www.ptt.cc/bbs/MobileComm/M.1556260646.A.75E.html
KimJongUn : 那要看compiler寫的功力 做的真的夠好 移植預先comp 04/26 14:50
KimJongUn : ile不難或不出什麼大錯的話 就能吸引廠商做原本App 04/26 14:50
KimJongUn : 版本 另外準備一份emui方舟版 04/26 14:50
KimJongUn : 但移植太吃力就沒人陪你玩 除非是極大的App如大型遊 04/26 14:51
KimJongUn : 戲 比效率的東西 04/26 14:51
KimJongUn : 真的效率高 就屌了 想像一下pubg方舟版本運行比其他 04/26 14:53
KimJongUn : 安卓版本好的話 華為要怎麼大吹特吹 嘻嘻 04/26 14:53
banbanzon : 現在手遊生命週期短 更新又頻繁 沒人力搞太多版本 04/26 20:21
kuma660224 : 那可能只影響loading 04/26 21:41
kuma660224 : 遊戲執行時通常是卡GPU 04/26 21:42
kuma660224 : 只有loading是卡cpu 04/26 21:43
Iaincc : 重點不在如何實現,而在推廣開發者用這套工具開發 04/27 03:31
Iaincc : ,重點是有相容性的問題,這是Java庫調用的原生限 04/27 03:31
Iaincc : 制,不可能所有程式都用AOT,而且需要做針對性的優 04/27 03:31
Iaincc : 化,光是這點小廠就沒法做更新與維護,而且中國境 04/27 03:31
Iaincc : 內沒有Google都自行下載,但世界其它地方多半都是 04/27 03:31
Iaincc : 用Play商店更新下載,如果每個設備都要做對應的優 04/27 03:31
Iaincc : 化,哪要上傳多少版本? 04/27 03:31
Iaincc : 除非像三星做自己的Store,但這小廠更不可能做,而 04/27 03:32
Iaincc : 且也無利於推廣 04/27 03:32
Iaincc : 想要從底層改變生態,光是華為開發四個字就有不少 04/27 03:33
Iaincc : 疑慮了,Google更是鳥都不想鳥你 04/27 03:33
Iaincc : 最後了不起在中國推廣罷了 04/27 03:34
Iaincc : 重點是手機的生態根本不容許你這樣做,很多程式都 04/27 03:39
Iaincc : 是同時上架ios跟android,程式開發時會盡量減少差 04/27 03:39
Iaincc : 異性,以降低工作量與維護成本,更不可能用一套小 04/27 03:39
Iaincc : 眾的編譯器 04/27 03:39
Iaincc : 有些程式在ios上執行快,在Android上執行慢,也有 04/27 03:46
Iaincc : 相反的,這些在開發者選擇開發的工具時就決定了, 04/27 03:46
Iaincc : 很多是時候是看開發的成本及維護的能力 04/27 03:46
Iaincc : 說穿了就是華為什麼都不行,才只能在開源的Androi 04/27 04:00
Iaincc : d上搞這些有的沒的,有能力的就像蘋果一樣去搞封閉 04/27 04:00
Iaincc : 系統了,軟硬體搭配才叫強,不然也學三星去搞Tize 04/27 04:00
Iaincc : n啊 04/27 04:00
Iaincc : 最討厭的就是華為這種沒能力,又老愛吹自己天下第 04/27 04:02
Iaincc : 一的中國廠牌 04/27 04:02
ox3wqer : 樓上精闢 04/27 13:54
hfptt : 現在的正面宣傳、反面宣傳這麼多,還是不看廣告,看 04/28 10:13
hfptt : 療效。 04/28 10:14
melody1003 : 已更新方舟,速度非常有感 05/17 00:31