在經(jīng)歷美國全力打壓和封鎖近半年之后,華為反而爆發(fā)出了讓所有人矚目的實力。特別是近來,華為接連發(fā)布的經(jīng)過十年布局研發(fā)的方舟編譯器和鴻蒙操作系統(tǒng),再次讓外界見識到了華為真正的實力。雖然作為未來華為萬物互聯(lián)的基礎,鴻蒙操作系統(tǒng)顯然更重要,但畢竟鴻蒙系統(tǒng)還需要一段時間進行生態(tài)布局,和技術迭代來完善和適配。而方舟編譯器作為華為軟件生態(tài)的重要一環(huán),在當下就顯得非常重要了。
而方舟編譯器在發(fā)布之時,就宣稱一旦把安卓系統(tǒng)和應用重新用方舟編譯器編譯之后,安卓系統(tǒng)的運行速度將大幅提升,甚至將可以媲美iOS。特別是華為還宣布方舟編譯器將完全開源。如果方舟編譯器真能做到宣傳中的效果,毫無疑問,一旦方舟開源,必將有大批的開發(fā)者匯聚于此,使用方舟重新編譯自己的應用。而方舟編譯過的程序,將可以在鴻蒙上完美適配。因此只要方舟編譯器表現(xiàn)良好,那就會變成鴻蒙系統(tǒng)生態(tài)的吸粉神器。
那么方舟編譯器能否做到宣稱的徹底改良Android呢。首先我們先來看一下到底有哪些因素,導致Android天生就跑不過iOS。首先一點,其實Android就是用Java編寫的一個疊加在底層Linux內核之上的運行在用戶空間的大型用戶程序。并且Android把底層Linux系統(tǒng)的各種功能都包裝成了各種各樣的服務,而各種應用程序就可以通過調用Android提供的這些服務調用底層linux的各種功能,從而實現(xiàn)用戶的各種需求,如打游戲,看視頻等等。
也因此Android天生就繼承了java的各種優(yōu)缺點。優(yōu)點是Java的兼容性,可以全平臺使用。但缺點也因此而來,正是因為Java為了能全平臺使用,因此使用了虛擬機概念來屏蔽底層硬件的區(qū)別。因為Android也是跑在虛擬機上的。雖然谷歌為了提高性能,在Android迭代時,更換了不同版本的虛擬機,但畢竟虛擬機還在。這就意味著,Android的應用程序在運行時,必須要先經(jīng)過虛擬機的解釋,才能讓底層的Linux再執(zhí)行。這就大大拖累了Android的運行速度。
而且由于底層Linux系統(tǒng)是用C語言編寫的,而Android及其應用都是用Java編寫的。因此當用戶使用應用程序想使用一個功能,那么就必須從Android系統(tǒng)的Java調用這個功能的接口轉換成底層Linux系統(tǒng)的C語言調用接口。而這有需要JNI來完成從java接口到C接口的轉換,又要拖慢一點時間。而且對于Android來說,如果內存占用過高(如打開的應用太多)時,會執(zhí)行一個叫做GC的內存回收工具,進行內存碎片回收。但是要命的是,GC在執(zhí)行時會停止所有的程序運行,直到清理完畢。這也是為何Android手機為什么一直在大幅增加內存容量,就是為了盡量減少GC的運行次數(shù)。
而華為的方舟編譯器就一舉解決了這幾個困擾業(yè)界多年的難題。通過將java/c/c++代碼統(tǒng)一編譯,徹底解決了以往安卓必須依賴的JNI和虛擬機。而又通過引用計數(shù)法進行內存實時回收,避免了GC的系統(tǒng)卡頓。因此方舟編譯器才敢宣稱能大幅提升Android及其應用的運行速度。
說來簡單,但要知道方舟編譯器做到了業(yè)界自Java 1995年問世以來,一直依賴虛擬機,幾十年未變的框架。也是第一個真正能做到Java/C/C++代碼能夠直接混合成機器碼的編譯器??梢哉f,有了方舟編譯器,華為才真正的有可能構建起自己的生態(tài)。現(xiàn)在廣大程序員,都在期盼著華為盡早開放方舟編譯器的源碼。正如Linux之父,程序員之神Linus說的:Talk is cheap, Show me the code。
-
華為
+關注
關注
215文章
34164瀏覽量
249692 -
編譯器
+關注
關注
1文章
1602瀏覽量
48916 -
鴻蒙
+關注
關注
57文章
2274瀏覽量
42531 -
方舟編譯器
+關注
關注
0文章
60瀏覽量
175
原文標題:國網(wǎng)節(jié)能公司面向國家電網(wǎng)系統(tǒng)內外公開招聘65人!
文章出處:【微信號:bjx-zndw,微信公眾號:北極星智能電網(wǎng)在線】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論