華為嚇人的GPU Turbo技術,跟據說能提升60%流暢度的方舟編譯器,性能到底如何?

狐狸灬糊塗


前一陣子,華為P30系列發佈,最為明顯的升級就是相機拍照部分,外加上P20打下的基礎,突破了自己,就算是突破了整個行業,然而從長遠的眼光看,華為P30的發佈帶來的拍照提升只是例行升級,真正懂行的人都注意到了華為推出的“方舟編譯器”,也看出來了華為真正的技術實力。

方舟編譯器簡單來說,就是可以將高級語言比如Java,直接編譯成變成機器碼的技術。它最大的優勢就在於繞過了安卓系統的VM(虛擬機),從使得應用可以像蘋果引以為傲的iOS系統一樣,轉化出的機器碼可以直接由CPU運算,從而使得運行效率大大提升。

概括的話,什麼事都變得很簡單,為了證明方舟編譯器的技術含量,我想還是有必要詳細介紹一下它的運行原理。

經歷過九年義務教育的我們都知道,計算機是隻認識0101這樣的二進制代碼。對於人腦來說,直接用這樣的二進制代碼來編程,顯然是不太現實的。於是彙編語言就出現了,屬於低級語言,只是一系列的字母指令集,後來為了實現更復雜的功能,高級語言誕生了,比如C語言,Java,python等等,能夠用更短的代碼實現更復雜的功能。

當然了高級語言計算機是無法直接讀取的,這裡就需要用到編譯器了,而編譯器就是將一種高級語言轉譯成一種低級語言的程序,起到關鍵的“承上啟下”作用,所以編譯的複雜程度直接會影響程序的執行效率,比如C語言比Java語言的執行效率高,正是因為C語言編譯出來的是CPU可以直接執行的機器碼,而Java語言則先是Java虛擬機(JVM)編譯Java語言,然後JVM再編譯成機器碼。所以多出來的這一步就會被放大,影響到應用的運行,這也是安卓系統的應用前期卡頓的主要原因,雖然之後谷歌針對JVM做出了一系列的改進和優化,但還是難以徹底解決。

反觀蘋果的iOS系統,直接使用Clang/LLVM來編譯出機器碼,就沒有安卓還要一箇中間層那麼麻煩,所以iOS如絲滑般流暢的原因也因為如此,還有一個不可忽視的因素是閉環。而安卓系統的底層是Linux系統搭建的,同時又因為安卓系統開源,為了解決應對不同硬件環境的適配問題,谷歌就增加了基於JIT(動態編譯)的虛擬機Dalvik,並在Dalvik虛擬機上搭建了一個JAVA應用框架,所有的安卓應用都是運行在這個虛擬機上。

當然了谷歌也知道這樣效率不好,於是在Android 5.0版本中,使用了ART模式來替換Davlik虛擬機。而ART是一個AOT (Ahead of Time)編譯器,是指在應用運行前就把字節碼靜態編譯成機器碼,就避免了每次打開應用都要虛擬機編譯的麻煩。然而只是代碼的靜態編譯,Java本身的動態特性,在執行代碼過程中會有動態類的加載(就是使用輪子),而靜態編譯時無法預測會加載哪些動態類。

所以弄了半天,還是需要虛擬機的動態編譯能力。而安卓想要像iOS那樣流暢,就必須跳過虛擬機,而方舟編譯器,解決的就是這個問題。

根據官方信息,華為的方舟編譯器也基於AOT編譯器,不過方舟編譯器創造性地靜態編譯了動態類,把所有的Java代碼都編譯成機器碼,這樣也就可以完全避開虛擬機,直接編譯成機器碼在手機CPU上運行,也就能夠有iOS系統一樣的高效。除了直接編譯之外,方舟編譯器也優化了編譯算法,並且在內存回收方面也有一定的改進,不僅是應用,對系統運行的流暢度也有很大的提升。

當然了,如此重大的提升,難道谷歌就不會想到嗎。想得到,但力不從心。因為想要使用方舟編譯器,得從應用的打包編譯上架重新開始,開發者必須按照方舟編譯器的標準重新編譯應用安裝包,所以這並不只是安卓系統,也需要應用的配合才能使用,目前好像只有微博極速版做了適配。

當然了,華為也宣佈將方舟編譯器全面開源,提供完整的編程框架和應用開發工具,將更多的開發者參與到方舟編譯器的開發和使用,共同提升整個安卓生態的體驗。方舟編譯器編譯是基於ARM指令集開發的,所以全面開源意味著其它廠商的安卓系統也可以使用。

這裡我們就能看出來華為對研發的投入,以及對生態的規劃,並不只是說說而已。開開發佈會賣賣手機只是小打小鬧的事情,華為的目標是全方位的生態建立。不管你是對華為這個品牌報什麼看法,但不得不承認目前在國內只有華為有這樣的實力去做整個產業上的事,去構建屬於自己的生態,方舟編譯器就是這個過程中的催化劑。


飯子音樂


首先,我們先來了解一下GPU Turbo。被稱為——革命性圖形處理加速技術GPU Turbo,打通了EMUI操作系統以及GPU和CPU之間的處理瓶頸,通過軟硬件的優化協同,實現了圖形處理效率的大幅提升,圖形處理性能提升了約60%,而且降低了功耗,從多方面進行提升,在這種程度上令人驚歎。

其次,如榮耀20Pro,便是擁有方舟編譯器的手機。它能繞過虛擬機直接執行應用,降低學習和使用成本,不僅速率能大大提高,還能更有針對性地優化不同的軟件。在流暢度方面,是受到眾多用戶的高度盛讚的,性能好。


科技趣聞


既然叫方舟編譯器,那本質還是個編譯器,所以我們先了解一下什麼是編譯器?其實就是將我們所理解的語言轉化為機器認識的0和1的程序,當然要是更準確的說法應該是將高級語言轉化為低級語言。其實在安卓中是有著編譯器存在的,畢竟如果沒有編譯器的話不論任何一款軟件或是系統都寸步難行。

安卓的開發核心是什麼?不少人以為是linux,其實安卓的開發核心是Java(這也就是為什麼近幾年的java工程師比原來還吃香),因為Java自身有著強大的跨平臺性,所以安卓為了開發資源更加豐富也就轉投了Java陣營,雖然說Java很不錯,但Java的跨平臺性也必須要提一下,因為這就是方舟編譯器存在的核心。

那麼方舟編譯器是什麼意思呢?就是打算革了ART、虛擬機的命,再說的清楚一點,安卓目前的運行方式從AOT+ART變成了JIT+AOT+ART,再加上ART本身還是一個虛擬機,如此的組合也就代表著安卓的每個程序運行時還是要通過虛擬機和實時編譯的方式進行運作,雖然相比從前的JIT+Dalvik效率提升了不少,但依然還是比編譯型語言速度慢上一些,這也是為什麼安卓相比IOS來說應用啟動運行流暢度都要差上一點。

那麼方舟編譯器呢?從如今知道的消息來說,敢稱自己系統響應、系統操作和第三方APP流暢度都有提升,基本上就是相當於前後段全部重寫,不過重寫的選擇就非常有趣了,目前來說海思還不支持llvm,也就是沒有機器模式,所以後端用的就是GCC,而前端因為海思抱緊了ARM架構大腿,所以參考ARM的前端是在clang上開發的,華為應該也是在clang的基礎上做二次改進,所以前後端的選擇有很大可能性是clang+GCC。

那麼方舟編譯器大面積推廣的可能性有多大?說實話不大,參考安卓7.0版本開始使用AOT+JIT就能夠看出來,況且目前沒看到哪個開發用ARM的編譯器,考慮到兼容問題自然還是抱緊官方的大腿更好。未來方舟編譯器是否能成功,還是要看兼容性問題是否能夠完美解決,以及華為是否能夠拉上盟友一同造勢。


影音真燒錢


60%的流暢度不是靠方舟編譯器單個軟件就能行,還要配合超級文件系統系統等一系列軟件和安卓優化得來的。在手機使用過程中解決卡頓問題。在和谷歌合作期間,華為研究了幾年安卓卡頓問題,在大量卡頓的安卓機分析了卡頓問題所在,取得了解決卡頓專利,谷歌後來也採用了華為提供的專利。德國測評也針對華為發佈會提出的18個月不卡頓去做了實驗,模擬重度使用18個月後,流暢度保持了95%,任何手機包括蘋果流暢度都會下降,能有這成績絕對是傲立群雄的。之後的手機無論在流暢度,還是在遊戲,續航,拍照方面都取得很好成績。


來了一個大傢伙


就是個徹底的噱頭,我的mate10pro升級以後是廢了,流暢度是比以前差些的,誰特麼昧著良心說更流暢的首先會懷疑你做虛假宣傳


默默你我


華為980 就已經能達到 服務器的級別了 美國針對華為 可能就是因為這個 美國宇航局要用麒麟980 作為最高服務器端 美國軍方也是要用麒麟 可華為不給 所以美國才禁華為的 980這處理器 的速度 都能用在時光穿越了 都能造出黑洞


我的天啊我叫什麼啊


王者榮耀gpu 50fps 最近升9.1.0.321 可以達到60fps


松鼠Python


我也算華為粉絲,但客觀的講。GPU Turbo和方舟給性能提升並沒有宣傳的那麼誇張


Adam_Luo


不知道,反正用了快2年的m10p,才刷最新的9.1……一點都不卡,流暢的很……


kaixinmaju


方舟編譯器是個厲害角色 但是效果,,,,跟蘋果的0b-c相比 查的有點遠 這幾年華為最大的改變 還是ui設計吧 感覺比以前好看太多了


分享到:


相關文章: