在華為聲稱“方舟編譯器,可通過架構(gòu)級優(yōu)化讓系統(tǒng)操作流暢度提升24%,安卓應(yīng)用流暢度可提升60%”以來,編譯器這個概念就被帶火了,方舟編譯器也被媒體熱炒。
日前,華為方舟編譯器在鯤鵬社區(qū)上架,根據(jù)網(wǎng)站上公布的資料,方舟編譯器的介紹為:
方舟編譯器是基于GCC開發(fā)的交叉編譯器套件,它包括了C、C++、Fortran的前端,也包括了這些語言的庫(如libstdc++、libgcc等)。HCC運(yùn)行在X86 linux架構(gòu)服務(wù)器上,生成的二進(jìn)制運(yùn)行在Aarch64 架構(gòu)服務(wù)器上。
一位朋友告知:
有人比較了一下,華為的方舟和GCC沒有區(qū)別,只有非常少的部分不一樣,方舟編譯器壓縮包還是叫g(shù)cc-ark。
之后,基于不為人知的原因,鯤鵬社區(qū)的方舟編譯器火速下架,原網(wǎng)址鏈接也被和諧了。
關(guān)于華為鯤鵬社區(qū)上公布的方舟編譯器資料,鐵流咨詢了業(yè)內(nèi)人士,回復(fù)是:
交叉編譯器,就是在x86上編譯出arm的二進(jìn)制代碼。gcc本身就做得很好了......動態(tài)二進(jìn)制翻譯器,可以把x86應(yīng)用程序動態(tài)翻譯為ARM指令集,執(zhí)行在ARM服務(wù)器上。估計效率可以達(dá)到70%左右......方舟中最核心的應(yīng)該是支持動態(tài)二進(jìn)制翻譯。
可以說,華為鯤鵬社區(qū)上公布的方舟編譯器是服務(wù)于華為ARM服務(wù)器的,由于ARM在服務(wù)器上的生態(tài)相對于X86差距過大,很多軟件不支持ARM。而ARM服務(wù)器要推廣,需要支持大量沒有源代碼的x86程序。這項應(yīng)用能跑二進(jìn)制代碼,而當(dāng)前二進(jìn)制翻譯效率都不是很高。所以華為打算用動態(tài)二進(jìn)制翻譯來彌補(bǔ)ARM在服務(wù)器生態(tài)上的不足。
用二進(jìn)制翻譯來彌補(bǔ)生態(tài)問題,這種思路其實早已不是什么新聞,當(dāng)年的全美達(dá)就用二進(jìn)制翻譯兼容X86生態(tài),最后被英特爾用專利訴訟拖死。ARM在智能手機(jī)領(lǐng)域火了之后,英特爾也用二進(jìn)制翻譯的做法來兼容ARM的生態(tài),最終也是折戟沉沙。
之所以出現(xiàn)這種情況,主要是因為二進(jìn)制翻譯會造成性能損耗,以及二進(jìn)制翻譯未必能夠完美解決兼容問題。就性能損耗來說,在翻譯之后使英特爾的CPU性能只有原來的70%,憑空損失掉30%的性能后,使英特爾的CPU在移動端上性價比和性能功耗比這兩項屬性上都不如ARM,同時,移動端恰恰是對功耗指標(biāo)非常敏感的,這使英特爾在市場競爭中非常不利。
還有就是兼容問題,以實際體驗來說,鐵流好友使用過聯(lián)想搭載英特爾CPU的手機(jī),日常使用問題不大,就是個別應(yīng)用會時不時閃退。猜測可能是生態(tài)兼容方面依然存在一定問題。
而英特爾曾經(jīng)面對的問題,將來華為可能都要面對。從實踐上看,自己建生態(tài)才是正途,比如X86在PC和服務(wù)器的統(tǒng)治地位,以及ARM在智能手機(jī)上的統(tǒng)治地位,兼容別人的生態(tài)是投機(jī)取巧,走捷徑的影響是根基不牢,結(jié)局是欲速則不達(dá)。如果沒有政府輸血和國企訂單,在純粹商業(yè)模式下,十有八九要悲劇。
由于鯤鵬社區(qū)上公布的方舟編譯器是用在ARM服務(wù)器上的,因而鐵流很疑惑為何會宣傳“方舟編譯器,可通過架構(gòu)級優(yōu)化讓系統(tǒng)操作流暢度提升24%,安卓應(yīng)用流暢度可提升60%”。
業(yè)內(nèi)人士告知:
那他們應(yīng)該把所有的幾個系統(tǒng)統(tǒng)稱為方舟編譯器了......手機(jī)上重點(diǎn)是java虛擬機(jī),執(zhí)行的是安卓的應(yīng)用,主要是java代碼,也有部分ar二進(jìn)制代碼或者庫。
對此,華為手機(jī)產(chǎn)品線副總裁李小龍發(fā)文回應(yīng)稱,華為云鯤鵬社區(qū)“這個網(wǎng)站不是華為消費(fèi)者BG維護(hù)的網(wǎng)站,此編譯器好像是服務(wù)器部門用的,和我們之前和P30 一起發(fā)布的方舟編譯器沒有任何關(guān)系。”
綜合一下看,華為云鯤鵬社區(qū)的方舟編譯器和華為消費(fèi)終端的方舟編譯器應(yīng)該不是一個東西。不過,華為消費(fèi)終端的方舟編譯器也是過度炒作被神話的。
華為方舟編譯器是如何做到第三方應(yīng)用性能提升的?目前還沒有官方的回應(yīng),而流傳的消息則有兩種。一種是說華為針對安卓原來的編譯器進(jìn)行了深度的魔改實現(xiàn)了性能的巨大提升,一種是說華為通過將Java代碼繞過虛擬機(jī)直接翻譯成機(jī)器碼來實現(xiàn)的。當(dāng)然還有一種混合的說法,即華為通過將Java代碼繞過虛擬機(jī)直接翻譯成機(jī)器碼來對原來的編譯器進(jìn)行了深度的魔改。針對直接將Java代碼翻譯成底層機(jī)器碼的方法,一般認(rèn)為這當(dāng)然有利于提升性能,但不利于應(yīng)用程序的可移植性和可維護(hù)性以及操作系統(tǒng)的安全性。本次華為云鯤鵬社區(qū)的方舟編譯器的下架事件,只不過是給被神話的方舟編譯器降溫擠水分而已。
另外,現(xiàn)在國內(nèi)有一股拿開源改改就標(biāo)榜自主的風(fēng)氣,比如此前的紅芯瀏覽器。這種現(xiàn)象和以前的“漢芯”事件一樣造成了很惡劣的影響。必須說明的是,“漢”、“紅”都是有一定特殊含義的,這種做法造成的傷害不僅僅局限于信息產(chǎn)業(yè)。
鐵流認(rèn)為,基于開源軟件做修改,就說明是某開源軟件的修改版即可,比如鯤鵬社區(qū)的方舟服務(wù)器,就對就外宣傳是GCC 7.3的修改版即可,不要標(biāo)榜方舟編譯器以免誤導(dǎo)吃瓜群眾。
類似的,華為GaussDB 數(shù)據(jù)庫就標(biāo)明是PostgreSQL9.2修改版,不要玩自主研發(fā)GaussDB 數(shù)據(jù)庫的文字游戲。媒體在報道中出現(xiàn)了“外界也認(rèn)為 GaussDB 內(nèi)核具有超越現(xiàn)有開源數(shù)據(jù)庫如 MySQL 與 PostgreSQL 的極致性能”,宣傳上的文字游戲已經(jīng)誤導(dǎo)了不少人。
還有國內(nèi)這些Linux操作系統(tǒng),早期的Happy Linux、紅旗Linux的叫法就挺好,把技術(shù)來龍去脈說的很清楚,現(xiàn)在各種麒麟OS,不了解內(nèi)情的老百姓還真會被誤導(dǎo)。
之所以出現(xiàn)這種現(xiàn)象,根源是在技術(shù)和國外有較大差距的情況下,又喜歡過度標(biāo)榜自己,逐漸演變成了浮夸風(fēng)。
華為鯤鵬社區(qū)方舟編譯器上架后火速下架,根源是國內(nèi)大環(huán)境充斥著浮夸風(fēng)后翻車的結(jié)果,如果還是喜歡過分標(biāo)榜自己,類似的事件不會是第一次,也不會是最后一次。
「 支持烏有之鄉(xiāng)!」
您的打賞將用于網(wǎng)站日常運(yùn)行與維護(hù)。
幫助我們辦好網(wǎng)站,宣傳紅色文化!
歡迎掃描下方二維碼,訂閱烏有之鄉(xiāng)網(wǎng)刊微信公眾號
