都在用的報告小程序
寫文章、做研究、查資料【必備】
8月31日,華為官宣方舟編譯器正式上線,原始碼已開放下載。據悉,目前方舟編譯器還在持續演進中,華為表示計劃在2020年將方舟編譯器完整開源,幫助開發者構建完整的工具鏈。
但JFinal作者詹波看完關於方舟編譯器的深度解析後注意到——為什麼完整開源要用10年之久?為什麼做一個Java編譯器的難度會遠比做C++編譯器要高得多呢?這一提問一時間引起熱議。
方舟技術專家所在的微信群中,方舟編譯器專家「不閒」首次回應了這一問題,包括為何不選C++、整體頂尖性能等方面的考慮:
方舟專家「不閒」介紹稱,首先在構思方舟的時候華為並沒有選擇C++,是因為國內生態開發者主要還是Java/Kotlin為主,而Java本身是動態語言,如果要能夠在伺服器側做到靜態編譯,又不能動手裁剪語言的動態能力,就需要IR,運行時,編譯器以及編程框架一起修改。這還要考慮複雜的兼容問題,導致技術方案選型的困難。
其次,要想提高流暢度,需要提升內存使用效率、提升JNI效率,需要想盡辦法控制動態綁定對性能的影響,需要profile上有更準確的信息,這是系統工程上的困難。
「不閒」表示,其實二進位編譯也只是一種技術路線,簡單的AOT也是生成二進位,問題的關鍵是如何提升編譯後的代碼執行效率,這是當前的主要困難。他引用甲骨文等海外巨頭作為例子類比指出,「做出一個可以工作的不難,難在做出世界頂尖性能。」
本文來源前瞻網,轉載請註明來源。本文內容僅代表作者個人觀點,本站只提供參考並不構成任何投資及應用建議。(若存在內容、版權或其它問題,請聯繫:service@qianzhan.com) 品牌合作與廣告投放請聯繫:0755-33015062 或 hezuo@qianzhan.com