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