華為宣布方舟編譯器將於8月31日起開源
今日華為EMUI官方微信發文宣布,方舟編譯器開源準備就緒,將於8月31日起開源。方舟編譯器是完全替代了語言虛擬機的靜態編譯器,從此不再需要解釋器。相比現有的編譯機制有以下明顯優勢:
1、方舟編譯器是一種靜態的編譯方式,而現有的安卓系統,運行一個應用程序首先啟動虛擬機,然後讀入應用代碼逐條解釋執行,無法做到100%做到擺脫虛擬機,這也是當前安卓陣營面臨的問題。
簡單一句話,只要是經過編譯器編譯的應用,在應用市場上架以後,用戶下載的APK 就是編譯好的了,方舟編譯的應用在開發階段就已完成了。
2、華為方舟編譯器的靜態編譯方式可將語言裡的動態特性直接翻譯成機器碼,手機安裝應用程序後可全速運行程序,徹底幹掉了虛擬機,極大提升了系統運行效率。
方舟編譯器對於系統在這方面的提升,官方曾這樣描述:
一、EMUI 9.1對系統主要服務System Server進行靜態編譯化,帶來了系統流暢度提升24%,系統響應性能提升44%以上的收益。
二、微博極速版實現了靜態化編譯後,流暢度提升高達60%。通過上方演示視頻來看,經過方舟編譯優化的APP,在流暢度度方面的提升很明顯。
此外,方舟編譯器還帶來了新的系統垃圾回收機制。以往安卓的垃圾回收機制是集中回收,由於Java虛擬機的特點,系統會不停的地自動回收內存垃圾,保證內存不會溢出。
更要命的是,當內存低於某個標準值後,它就會自動殺掉優先級低的進程。系統會集中關閉被標記的多餘進程,這就造成了隨機性的卡頓。相信大家遇到過這種情況,啟動遊戲時,點按應用瞬間進入前會感覺莫名的卡頓,界面像是遲鈍了一下。
而方舟編譯器在這方面有什麼不同,它的內存回收機制是隨用隨回收,回收時不需要暫停應用,而是直接回收內存垃圾,這大大提高了系統運行速度和效率。