每日最新頭條.有趣資訊

話不多說、代碼拿來:方舟編譯器開源的“核爆”威力

於無聲處起驚雷!華為官方8月31日正式將方舟編譯器對外開源。

8月31日,華為方舟編譯器開源網站上線,開發者可以通過華為雲與開源中國代碼託管網址獲得相關代碼和文檔,以便參考學習、了解方舟編譯器的架構和代碼。可以說,對於全球終端用戶、開發者以及應用廠商而言,“方舟”開源都有著非凡的意義。

方舟編譯器的作用是什麽?從華為終端CEO余承東的表述來理解,方舟編譯器能改善應用運行效率,從原先的邊解釋邊執行轉變為全程機器碼高效運行程序。

那麽開源的意義又是什麽?在懂懂看來,此舉既是誠邀廣大開發者共同“攜手”,也是向應用廠商發出提升手機用戶體驗的要求,目的很簡單——共同打造共贏的生態系統。如果沒有開發者和應用廠商的協力,沒有整個行業參與者對其持續地重構和優化,一個生態系統很難打造出來,也很難形成龐大的用戶群體,更難以形成一個從手機到萬物互聯全面滲透和覆蓋的生態系統。

十年磨一劍 方舟開源謀定後動

2009年華為成立編譯組,方舟編譯器雛形誕生,至今其研發已經走過了十年歷程,堪稱十年磨一劍。

從華為公布的相關信息來看,方舟編譯器並不僅僅是從高級語言到機器碼進行了“萬能翻譯”,而是成為一個編譯運行系統。這個編譯系統不僅實現了詞法分析、語法分析、代碼生成等功能,更在IR設計和算法優化方面進行了深入地嘗試。

方舟編譯器首先解決了Java程序編譯的兩個難題:JNI調用的開銷巨大,動態特性導致全程序優化難以實施。通過將不同語言通過統一IR表示、統一優化算法,將不同語言間的“翻譯”開銷盡可能減少,手機安裝App應用後可更快地運行程序,同時以輕量化的運行時降低傳統虛擬機的開銷,實現效率的提升。

其次,方舟編譯器針對Java代碼效率提升,嘗試了在開發者環境中進行高度編譯優化的方法,相當於是用空間換性能,讓編譯器不再被手機的硬體和系統能力製約,同時也通過編譯優化能力增強為代碼優化提供了更多的可能性。

最後,方舟編譯器在Java上實現了基於引用計數的記憶體管理方法,結合自身機制的優化+開發者的聯動,有望實現應用在運行過程中記憶體隨用隨收,沒有了虛擬機“集中回收”這個動作,減少了運行時給應用帶來的卡頓。

如今,很多人已經離不開手機上的各種應用,而更加順暢的體驗,自然意味著新的行業發展機遇,更是新的商業規則的建立。

我們可以從8月31日啟動開源這一舉措可以看出,方舟編譯器所謀不凡。

眾所周知,軟體的開源,目的就是讓開發者和第三方廠商一同參與進來,這樣源碼才會在不斷地重構和優化中激活、升華。

方舟編譯器的特點正在被業界所了解,而通過開源社區,開發者和廠商將進一步推動相關技術和應用的進步,華為更可以從開源社區的重要玩家逐漸走向開源的領跑者。

從方舟編譯器開源後的相關舉措,可以看出“重要玩家”背後滿滿的誠意。

首先,本次方舟編譯器開源直接開放了編譯器最核心的代碼,揭開了其技術核心特徵。對編譯器愛好者來說,可以一探華為方舟背後的設計思路。

其次,此次開放的框架代碼搭配了編譯器等其他二進製組件,實現Java程序到aarch64匯編指令的編譯過程。因此開發者可以基於開源代碼+二進製,編譯構建出編譯器工具鏈。社區參與者可以通過框架源碼學習方舟編譯器的編譯器中間表達(IR)及基本的中端編譯框架,進而參與到對編譯器中端優化的工作中。另外,開發者還可以通過代碼託管平台參與社區貢獻,並在此平台上反饋相關問題和需求。

這些舉措看似平淡無奇,但是仔細觀察,可以發現諸多開源舉措的背後,也彰顯出了華為對於自身技術的自信態度,更可以看到華為打造手機生態圈、吸引全球技術人員和企業參與的使命感。

這種自信,既來自與華為對手機行業的前瞻性思考,也來自其對未來IoT尤其是智能生活領域的籌謀。之所以這麽說,是因為方舟編譯器此次開源,不能孤立地視為是一個手機編譯系統的開源,其背後還有圍繞華為EMUI不斷迭代升級所推動的極致用戶體驗,以及全場景智慧生活的戰略。

無生態不開源 Show me the code

從EMUI升級到5.0時,華為就將手機卡頓這一安卓系統的行業性難題作為重要課題。在EMUI5.0發布時,華為承諾手機系統“18個月持久流暢”;在EMUI8.2版又推出了“很嚇人的技術”——GPU Turbo,主要作用是提升手機性能的同時降低了功耗;在EMUI9.0時華為推出了Link Turbo全網絡聚合技術,聚焦單一網絡下網速的大幅提升;到了今年年初升級到EMUI9.1時,兩大革命性創新——EROFS超級文件系統和方舟編譯器才正式“曝光”,而華為發力安卓系統底層性能優化能力的實力也為外界所認知;直至8月初EMUI10發布,EMUI的使命已經成為“開啟全場景智慧生活的鑰匙”。

顯然,這些隨著EMUI不斷迭代而出現的黑科技,是華為多年來持續不斷投入巨資研發(每年超過營收10%)的結果。同時,華為並沒有獨享其樂,而是希望通過開放、合作和共贏,打造一個開放式創新的生態氛圍。

軟體生態建設的難度,無疑比OS本身的研發更大。此前倪光南院士就公開表示,作業系統這類軟體的市場競爭不能依靠性價比,而是要依靠生態體系。因為有生態,才能有應用,才能形成良性循環。而開源,無疑正式建立健康、可持續發展的生態體系的基礎。

從此次方舟編譯器的開源,可以看出華為從開源領域的積極參與者變為主動引領者的決心,只有以更加積極的姿態引領行業,才能為用戶帶來更好的體驗,打造共贏的生態。

不少網友在關注方舟編譯器的同時,也在關注鴻蒙系統的進展。

在國際環境變幻莫測的局勢下,這種關注自然在情理之中。無論是網友熱議的方舟編譯器,還是未來的鴻蒙系統,都有可能在開源方式的驅動下從不同維度打造出一個更具有競爭力的生態體系。

當然,目前方舟編譯器的開源還只是萬裡長征的一小步,而外界已經有聲音在“方舟”初露鋒芒時,就猜測其會先讓安卓“加速",之後則是為鴻蒙打下“地基”。在這裡我們不做過多揣度,但是不妨橫向分析一下其他手機企業在自主系統方面的得失。

過去近十年裡,在安卓逐步壯大的同時,業界也在嘗試打造新系統。除了業界熟知的微軟WP,也有一些略為不起眼的例子。2012,諾基亞在MeeGo的基礎上開始研發旗魚系統,期望將塞班和旗魚作為挑戰安卓的抓手,但是僅不到一年半的時間,諾基亞就停了系統更新。

同樣在這一年年初,Tizen系統最初版本發布時,作為發起者的三星電子、英特爾以及兩大Linux開源社區無不對其給予了厚望。但是如今外界已經看不到搭載Tizen的三星手機產品,只能在三星智能電視上窺見其真容。

而在國內市場,阿里也曾在2014年以5.9億美元投資魅族手機,旗下阿里雲OS成為後者魅藍系列的搭載系統。但是到了2017年後,隨著魅族市場份額的下滑,合作也無疾而終。

對於這些手機行業知名品牌的相關案例,外界有著無數的分析和評論。但在懂懂看來,沒有能夠形成強大的軟體生態系統,是失利的主要原因。

沒有廣大的應用軟體開發商、開發者和跨界合作夥伴共同融入到生態體系中,自然也就得不到用戶的認可,而缺少用戶,自然也就無法引起各方的持續投入。

回到方舟編譯器,自然不能孤立地去看待此次開源的意義,而是要放在華為整個萬物互聯和全場景智慧生活的戰略中,才能看出更深層次的內涵。從這個意義來看,如今華為誠邀各方合作夥伴和應用開發者一起匯聚的“方舟朋友圈”,既是方舟編譯器的朋友,更是全場景智慧生活領域的朋友。

當然,從朋友圈到有福共享的朋友利益共同體,要經歷的挑戰自然難以想象。方舟編譯器能以十年磨一劍,未來的“朋友圈”或更要做好長途跋涉的準備。

至少從目前來看,華為在開源一事上的決心和信心都彰顯無遺。華為目前在全球具有重大國際影響力的開源社區中,擁有十多個董事席位,以及200多個TSC、PTL、Core Committer席位。同時,作為Linux基金會白金成員,華為對Linux kernel累計貢獻6800+補丁,在5.1 Release版本中排名超過谷歌、IBM等國際廠商,是TOP 5中唯一的亞洲廠商。

對於“方舟”,做遠比說要更為重要。正如用Linux之父托瓦茲的那句名言:Talk is cheap,Show me the code!在智能手機市場,在IoT時代,只有開放代碼,開放資源,開放利益,才能建立真正意義上的共贏生態。

【結束語】

對於普通用戶而言,方舟是什麽並不重要,只要經過編譯的App下載後用著流暢,就是真的舒適。而對於開發者和應用軟體企業來說,能夠軟體開發一鍵打包,全部自動適配,開發人員省時省力才是硬道理。雖然就本次開源的部分看方舟編譯器還有許多不夠成熟完備之處,但以華為的技術實力,相信未來一定會逐漸完善起來。

未來,如果主流的App都能與方舟編譯器適配,用戶、應用廠商和開發者各方都能感到“穩了”,這事兒才真的算是“穩了”。

——————————————————————————————————

微信關注公眾號“懂懂筆記”每天第一時間為您奉上最新最熱的科技圈資訊~

多年財經媒體經歷,業內資深分析人士,圈中好友眾多,信息豐富,觀點獨到。

發布各大自媒體平台,覆蓋百萬讀者。

《小米生態鏈戰地風雲筆記》、《微信思維》、《微信力量》三本暢銷書的作者

獲得更多的PTT最新消息
按讚加入粉絲團