在什麼情況下Java比C++快?

回覆者:Cameron Purdy,Oracle中間件高級工程師。

這是根據我同時使用C++和Java工作超過20年所學到的,其實使用Java比C++還要早幾年:

1、根據我的經驗,當你把優化過的C++代碼轉換成Java代碼,代碼的速度會慢大約三倍。

2、根據我的經驗,把Java代碼轉換成C++的代碼,速度同樣也會慢三倍。首先,這種比較根本沒有意義,除非你能意識到用Java的方式去寫Java代碼,而不是像C++開發者那樣去組織C++代碼。

3、對於併發的數據結構使用Java往往更有效率。當數據結構不是併發使用時,JVM會消除內存屏障和同步,並傾向使用基於運行時性能分析的併發管理。

4、Java的動態內存管理往往更有效率,在過度使用動態內存管理和多線程的系統中效果尤其明顯。

5、Java內聯代碼往往表現更加優秀,除非你基於分析器對C++代碼進行了大量優化(或者確切地知道如何使用內聯讓C++更加高效……你肯定會愛上這些頭文件!)。

6、使用Java的大型項目往往更容易優化,因爲JVM爲開發人員做了許多“全局”優化(比如內聯動態加載的代碼能力)。

一家之言,至少我的感覺是這樣……

原文鏈接: quora 翻譯: ImportNew.com - hackingwu
譯文鏈接: http://www.importnew.com/16056.html
[ 轉載請保留原文出處、譯者和譯文鏈接。]
發佈了3 篇原創文章 · 獲贊 7 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章