安卓無限接近iOS,華為方舟編譯器牛在哪?
點擊來回科技關注我們喲!
大家好!我是小馬哥!
精緻有趣的科技數碼體驗與測評
盡在「來回科技」
有鎖機全面科普
在華為P30的發布會上,余承東曾用幾頁簡短的演示文稿,簡單介紹了華為方舟編譯器和REOFS文件系統
在我們之前的文章中,也對方舟編譯器進行了分析猜測
而就在前幾天,華為官方召開了一個小型的會議,展示了方舟的更多內容
今天我們再來討論方舟編譯器,看看它是否能真的解決安卓卡頓問題
首先我們來看下余承東的微博
在這段視頻中,華為對方舟編譯器進行了解釋
正如我們之前猜想的那樣,它是在打包成apk時,直接將Java代碼翻譯成機器碼
讓CPU能夠直接跑程序,而不需要虛擬機的解釋執行,提高了機器的效率。由此來看,方舟編譯器面向的是開發者
安卓軟體想要在手機上運行,一共有三種模式,解釋執行 JIT AOT
解釋執行:用Java源碼編譯器編譯為.class格式的位元組碼,然後在用JVM(虛擬機)執行命令
這個過程做的是逐句翻譯,也就是邊解釋邊執行,而虛擬機相當於助理兼職翻譯,他幫機器完成工作
JIT:實時編譯,將Java的位元組碼翻譯成為機器碼(Native Code),也就是機器能理解的代碼
而JIT做的是逐段翻譯,邊翻譯邊執行,相當於一個實時翻譯機
機器能直接理解翻譯後的代碼並執行,這個模式是不需要虛擬機的
AOT:預先編譯,提前將程序中的位元組碼翻譯成機器碼並儲存
安卓7.0採用了新的ART模式,只將常用的Java代碼翻譯成機器碼並儲存
而這個過程是多次的,APP需要運行多次系統才能分析出哪些代碼是經常用到的,也就是常說的「熱代碼」
並且,這個分析調用過程發生在系統空閑時
總歸來看,解釋執行適用於Java代碼中的動態語句部分,而靜態語句則適合使用JIT或者AOT編譯器進行編譯
而無論是解釋執行還是JIT和AOT,都顯得效率不足,有沒有辦法讓機器直接跑程序呢
答案是有的,如果程序的apk文件在安裝的時候就已經使用機器碼,那解釋執行,JIT和AOT不是統統都可以一邊去
方舟編譯器做的就是這件事,將Java的所有語句統統翻譯成機器碼,最後打包成APK安裝文件
這就相當於,APP的代碼語言能直接被機器所理解,並被執行,而不用複雜的解釋執行,預先編譯和實時編譯過程
此外,方舟還帶來了新的垃圾回收機制
以往安卓的垃圾回收機制(Garbage Collecter)是集中回收,由於Java虛擬機的特點,系統會不斷地對內存也就是對象進行標記
永不停歇地自動回收內存垃圾,保證內存不會溢出是Java的一大特點
而這個機制觸發的條件有兩個:系統空閑,回收空閑進程的內存
可用內存低於某個閾值,自動關閉優先順序低的進程
而一旦觸發機制,系統就會暫停應用,集中關閉被標記的多餘進程,這就造成了隨機的卡頓
小馬哥就經常遇到在啟動遊戲時,手機會莫名的抽搐,GC確實是一大困擾
更要命的是,java語言並沒有提供釋放已分配內存的顯示操作,導致系統不能準確地控制垃圾回收的時間
因此是不存在iOS上普通應用10分鐘駐留時間等硬性規定的
而方舟做了什麼改變呢,方舟的內存回收機制是隨用隨回收,回收時無需暫停應用集中處理內存垃圾
根據華為實驗室的測試數據,經過這些優化後,系統操作流暢度提升24%,系統響應性能提升44%
華為新推出的EROFS文件系統同樣也是一個重大改進
早在華為Mate 9上,華為應用了F2FS文件系統,相比安卓傳統的EXT4,大幅提高了快閃記憶體的讀取速度
而EROFS則是在此基礎上,使用專利壓縮演算法,幾乎不存在無效讀取,讓隨機讀性能提升了20%,系統可用空間多2GB
十年磨一劍,華為能取得突破並非一日之寒
根據華為的說法,編譯器的開發在國內尚屬無人區,早在2009年,華為就創立了編譯組
2014年,編譯器領域的頂級大佬,周志德(Fred Chow)的加入大大增強了研發實力
最後,加上大批工程師的通力合作,才讓方舟編譯器成功問世
值得一提的是,方舟編譯器不僅適用於安卓系統,理論上基於ARM指令集的操作平台都能夠適用
據了解,方舟編譯器將在今年8月舉行的華為終端開發者大會上對框架代碼開源,開發者可以研究參考
在今年11月的綠盟開發者大會上將完整的方舟編譯器代碼開源,開發者可以編譯使用
誠然,華為通過對系統底層的優化,讓安卓系統的流暢度有了大幅提升
但系統基礎並不能決定用戶體驗,在APP的規範上,安卓的應用開發者仍需要更好的姿態
在這點上,iOS依然保持領先
希望未來的安卓軟體生態能夠進一步優化,早日與iOS齊頭並進
點我點我點我
來回科技-手機商城
來回五一大促活動仍在繼續,加場免單活動等你來!
iPhone XS Max只要4999
還有更多超低價機型,等你來搶!
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※資訊丨QQ蘋果版更新:界面大改?丨手機信號排行榜發布丨蘋果願意使用高通5G基帶
※史上性價比最高的遊戲手機,無鎖iPhone8 Plus只要2999!
TAG:來回科技 |