-
1 # 繁星落石
-
2 # 趕緊發楓華谷
華為方舟編譯器簡單介紹:
華為方舟編譯器能夠極大提高軟體的執行效率,系統操作流暢度提升24%、系統響應速度提升44%、三方應用操作流暢度提升60%。華為方舟編譯器還面向業界開源,這對於解決安卓系統碎片化問題將起到革命性的作用。
目前在國內仍處於“無人區”階段,華為從2009建立編譯組開始,到2013年華為方舟編譯器架構構想(方舟前身)正式提出,再到2019年方舟編譯器的正式應用,這其間花了整整十年,這十年間的無數失敗、無數次的重來,其間的艱辛,編譯組的科研人員是最有話語權的。
華為方舟編譯器優勢:存管理是程式開發與執行時需要重點考慮的部分,也和系統流暢度息息相關。安卓在記憶體回收上採用集中回收機制,發聲全域性回收時更需要暫停應用,這也是隨機卡頓的根因之一。而方舟編譯器提供了更高效的記憶體回收機制,回收時無需暫停應用,隨時用隨時回收,大大提高執行速度。安卓ART的AoT和JIT動態編譯因為是執行在手機上,受資源所限,因而只能使用簡單的最佳化演算法。方舟編譯器由於是在應用開發階段進行編譯,所以可以允許不同應用靈活採用不同的編譯最佳化方案,而且因為在開發環境編譯不會受到手機效能的限制,可以使用更多先進的最佳化演算法,從而使得每個應用的效能達到最佳。
華為方舟編譯器的變革和機遇方舟編譯器可以說是為自己新系統變革做準備的過渡產品,以後APP軟體適配華為手機都要進行華為編譯器進行編譯。那麼代表著華為麒麟系統面世時候,提前讓軟體APP企業適應習慣使用華為方舟編譯器,就等於在為自己系統做準備。所以華為方舟編譯器是以後自己系統做準備,適配更多軟體。
-
3 # 程式設計師小葛
我們如果想要知道華為釋出的方舟編譯器能不能得到市場認可,首先就要明白什麼是編譯器。
啥是編譯器呢?編譯器其實就是把高階語言翻譯成低階語言的一種程式。
什麼是高階語言?
我們人寫出來的程式碼基本都是高階語言,例如;C、Java、Python、彙編等等。
什麼是低階語言?
就是計算機識別的機器語言,或者叫機器程式碼。
幾乎所有的程式,在我們完成開發以後,都會對其進行編譯,然後轉化為可執行的檔案,這樣,才能夠被作業系統識別,從而執行起來。不同的編譯器,編譯出來的結果也是各有不同,因此,執行的效率也會出現差異。
方舟編譯器幹了啥呢?我們現在的安卓系統,其實是基於Java環境來開發的,也因此,安卓的也是透過Java的編譯器編譯出來的。
而方舟編譯器其實就是對我們安卓系統中比較底層的System Server進行了編譯。這部分應用其實是為整個作業系統提供服務支援的。華為表示,方舟編譯器對System Server進行重新編譯後,EMUI 9.1的系統流暢度提高了24%,系統響應速度提高了44%。具體資料是什麼統計出來的我不清楚,不過我覺得,谷歌這麼弱啊,安卓的效能空間還有這麼多的提升?
當然,對系統進行重新編譯以後,其實是有風險的要知道,應用程式都是在系統上進行執行的,對系統的底層進行重新編譯以後,能不能完全相容現有的所有應用程式,這個是一個很大的問題。
如果系統和應用程式是使用統一的編譯器進行編譯,這個是不會存在這個影響的。但是,谷歌每次釋出最新的安卓版本時,都可能會出現大量的應用不相容的情況,華為這次使用方舟編譯器,估計也可能出現類似的情況。
不過,華為也表示,自己會在2019年11月,將完整的方舟編譯器程式碼開源,到時候,可能會有開發者會對華為的方舟編譯器進行完善,慢慢的就可能會透過編譯器建立一套生態。
當然,這個系統的生態,又是兩回事了現在的方舟編譯器,雖然號稱是針對多語言環境,但是,真正可能會被完善應用的,應該主要還是安卓和Java的環境。雖然這確實可以對華為以後研發自己的系統做出一點貢獻,但一個系統最主要的並不是編譯器。
就好像谷歌做安卓的時候,其實也就是基於Java來做的,並沒有完全自己來構架一樣。但是安卓系統卻成為了全球最大的移動端作業系統。
這主要還是歸功於安卓的開發者生態。而這個生態除非在移動裝置進行更新換代的時候,壁壘會出現裂縫,其他時候,想要攻破谷歌的生態壁壘,是非常的困難的。而且,華為的方舟編譯器,更多的應用場景也是在安卓上,如果拋離安卓,可能也會存在一些不為人知的問題。
所以,即使方舟編譯器被大規模應用了,也不能說華為就有能力去推動一個作業系統。
-
4 # 隨風而逝0939
編譯器是把程式語言翻譯成二進位制程式碼的,不是給手機裝的,也不是針對系統的,不過是把原來安卓的基於虛擬機器解釋型程式替換成讓安卓直接執行的二進位制程式碼,也就是變成和蘋果一樣的執行方式,如果做的成功,這在安卓發展史上革命性的,ios之所以流暢,是因為程式是靜態編譯的,機子直接讀二進位制程式碼,而安卓之所以卡,就是因為程式是動態解釋型的,有虛擬機器這個中間環節,方舟編譯器如果按照這個機制,不僅僅對安卓是革命性的,對JAVA整個生態可能都是革命性的,當然和ORACLE對簿公堂的可能性也很大,這樣ORACLE就失去了對JAVA的控制權,所以華為最終的方式可能會開發一種相容JAVA的語言,如果沿著這個生態華為就厲害了
回覆列表
可以在部分機型上去用這個東西,不過說實話看不出和Java預設編譯器有什麼進步的地方,除非把編譯過程提取,讓AOT安裝速度保持和現在一樣,算是一個革命性的東西。另外如果需要開發者參加的話,是不是說這個東西的安裝包形式和之前的編譯器不相容,如果不相容,想必只有很少的開發者才會去支援,開發者看重的是受眾群體,而不是廠家的名字。如果沒有開發者支援,想必不會有廠家跟進的吧,這意味著要給系統裡面內建兩套編譯器來保持相容性。