在經歷美國全力打壓和封鎖近半年之后,華為反而爆發出了讓所有人矚目的實力。特別是近來,華為接連發布的經過十年布局研發的方舟編譯器和鴻蒙操作系統,再次讓外界見識到了華為真正的實力。雖然作為未來華為萬物互聯的基礎,鴻蒙操作系統顯然更重要,但畢竟鴻蒙系統還需要一段時間進行生態布局,和技術迭代來完善和適配。而方舟編譯器作為華為軟件生態的重要一環,在當下就顯得非常重要了。
而方舟編譯器在發布之時,就宣稱一旦把安卓系統和應用重新用方舟編譯器編譯之后,安卓系統的運行速度將大幅提升,甚至將可以媲美iOS。特別是華為還宣布方舟編譯器將完全開源。如果方舟編譯器真能做到宣傳中的效果,毫無疑問,一旦方舟開源,必將有大批的開發者匯聚于此,使用方舟重新編譯自己的應用。而方舟編譯過的程序,將可以在鴻蒙上完美適配。因此只要方舟編譯器表現良好,那就會變成鴻蒙系統生態的吸粉神器。
那么方舟編譯器能否做到宣稱的徹底改良Android呢。首先我們先來看一下到底有哪些因素,導致Android天生就跑不過iOS。首先一點,其實Android就是用Java編寫的一個疊加在底層Linux內核之上的運行在用戶空間的大型用戶程序。并且Android把底層Linux系統的各種功能都包裝成了各種各樣的服務,而各種應用程序就可以通過調用Android提供的這些服務調用底層linux的各種功能,從而實現用戶的各種需求,如打游戲,看視頻等等。
也因此Android天生就繼承了java的各種優缺點。優點是Java的兼容性,可以全平臺使用。但缺點也因此而來,正是因為Java為了能全平臺使用,因此使用了虛擬機概念來屏蔽底層硬件的區別。因為Android也是跑在虛擬機上的。雖然谷歌為了提高性能,在Android迭代時,更換了不同版本的虛擬機,但畢竟虛擬機還在。這就意味著,Android的應用程序在運行時,必須要先經過虛擬機的解釋,才能讓底層的Linux再執行。這就大大拖累了Android的運行速度。
而且由于底層Linux系統是用C語言編寫的,而Android及其應用都是用Java編寫的。因此當用戶使用應用程序想使用一個功能,那么就必須從Android系統的Java調用這個功能的接口轉換成底層Linux系統的C語言調用接口。而這有需要JNI來完成從java接口到C接口的轉換,又要拖慢一點時間。而且對于Android來說,如果內存占用過高(如打開的應用太多)時,會執行一個叫做GC的內存回收工具,進行內存碎片回收。但是要命的是,GC在執行時會停止所有的程序運行,直到清理完畢。這也是為何Android手機為什么一直在大幅增加內存容量,就是為了盡量減少GC的運行次數。
而華為的方舟編譯器就一舉解決了這幾個困擾業界多年的難題。通過將java/c/c++代碼統一編譯,徹底解決了以往安卓必須依賴的JNI和虛擬機。而又通過引用計數法進行內存實時回收,避免了GC的系統卡頓。因此方舟編譯器才敢宣稱能大幅提升Android及其應用的運行速度。
說來簡單,但要知道方舟編譯器做到了業界自Java 1995年問世以來,一直依賴虛擬機,幾十年未變的框架。也是第一個真正能做到Java/C/C++代碼能夠直接混合成機器碼的編譯器。可以說,有了方舟編譯器,華為才真正的有可能構建起自己的生態。現在廣大程序員,都在期盼著華為盡早開放方舟編譯器的源碼。正如Linux之父,程序員之神Linus說的:Talk is cheap, Show me the code。
-
華為
+關注
關注
216文章
35024瀏覽量
255045 -
編譯器
+關注
關注
1文章
1654瀏覽量
49886 -
鴻蒙
+關注
關注
59文章
2508瀏覽量
43766 -
方舟編譯器
+關注
關注
0文章
60瀏覽量
366
原文標題:國網節能公司面向國家電網系統內外公開招聘65人!
文章出處:【微信號:bjx-zndw,微信公眾號:北極星智能電網在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
RVCT編譯器是否比GNU的編譯器的代碼執行速度更快?
Triton編譯器如何提升編程效率
Triton編譯器的優化技巧
Triton編譯器在機器學習中的應用
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
用功率運放OPA549T做電壓跟隨器,出現大幅度振蕩的原因?怎么解決?
INA163 4引腳的電壓信號被大幅度衰減是怎么回事?
INA826檢測時出現較大幅度偏移,導致結果偏大或偏小是什么原因導致的呢?
INA317儀表放大器前級加跟隨器,為什么會導致共模抑制比的大幅度下降呢?
任務編譯器v6.3r1運行速度太慢,是什么原因導致的?
AI編譯器技術剖析
人工智能編譯器與傳統編譯器的區別
SEGGER編譯器優化和安全技術介紹 支持最新C和C++語言

評論