Google:C++、Java、Scala、Go四種語言效能對比

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Google發布了一個研究報告,仔細比較了C + +、Java、Scala和Google自己擁有的Go程式設計語言的效能。

根據Google的測試報告(PDF格式),C + +是四種語言中運行速度最快的。但是該檔案同時也指出,最佳化代碼相對困難,這需要相當的努力、熟練的水準,不是平均水平的程式員所能達到。

Go旨在消除至少這個限制一些,但它仍然是年輕的(它首次亮相大約一年,不過前半年只是一種“實驗性”語言年),並在大多數Google測試中表現出,它落後於C + +以及Java和Scala。“Go提供了有趣的語言特性:這是一個簡潔和標準化的符號,”閱讀了報告,GOOGLE創始人羅伯特亨特寫下:“[但是]語言編譯器仍然是不成熟的:無論是效能和二進位大小方面都反應了該問題。”

這就是說,Go的編譯比其他三種語言都要快。 Java和Scala編譯成Java位元組碼,而C + +和Go編譯成機器代碼。Google目前沒有測試並發:一個為Scala和Go特別關注的領域。Go被設計為一個並發語言,提供了C + +的速度,但“感覺”像Python的動態語言。

Scala——一個物件導向編程和過程語言的之間語言,運行在Java虛擬機器上——邊緣上運行Java,而且它有一個更小的代碼和記憶體空間。但它仍然受到的一些限制Java的。從報告中看到:“Scala[的]簡潔的符號語言和強大的代碼最佳化特性,為重複雜性上最好的選擇”“Java版本很可能是最容易實現,但最難的效能分析。具體來說垃圾收集的影響周圍是複雜,非常難調。由於Scala在JVM上的運行有相同的問題。

與登記冊上,上周五在矽谷招待會上公布的報告,Scala的建立者馬丁Odersky批准了他的郵票,Google的基準,在兩個不同的層面運作。

 

首先,Google編碼為每種語言,使用語言的慣用容器類基準,迴圈結構,以及記憶體/對象分配計劃——不使用語言,旨在最大限度地表現特定的工具。“這種方法允許的語言功能,代碼的複雜性,編譯器和編譯時間,二進位大小,已耗用時間和記憶體足跡幾乎公平比較”的檔案說。

再經過測試的結果在Google公布,各種Google的工程師最佳化了每個語文基準,並再次運行測試。“雖然這項工作是一個比較軼事只,基準,以及隨後的調整努力,都在各自語言的典型表現痛點指示,”亨特說。

Odersky同意,至少在涉及到Scala。最佳化後的——這涉及到Scala的功能方面的優勢——Scala的代碼及其運行時的大小顯著減少。“我特別喜歡這個主意來構建一個角度非專業點的一個演算法,通過比較資料,然後...然後挑戰人們的最佳化,”Odersky說。“從某種意義上說,這是公平的。”

在最佳化階段還顯示,而C + +提供了最快的已耗用時間,最佳化代碼是比較困難的。在最佳化階段,開發商還顯著地降低了C大小+二進位檔案。

據來自Google員工伊恩前往蘭斯泰勒在郵件清單發送,很少把工作轉到最佳化之前,該檔案的發布,而現在,經過進一步的最佳化,代碼要快得多。“儘管名稱,[表面上轉到最佳化版]代碼從來沒有打算成為一個地道的或有效率前往。羅伯特[亨特]例子讓我看看他的代碼,再看一眼,我就砍死了一個小時到做一點點更好。如果我已意識到,他將對外發布,我會使其更好的投入更多的時間,“泰勒說。

但是Scala說Odersky,演出的,譬如他的預期。“我知道,我們是頭到與Java頭。這是一個令人驚喜的,我們都優於Java的最佳化和非最佳化的測試,但我不希望成為應用程式的規則。”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.