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

ImportNew發表於2015-05-31

回覆者: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為開發人員做了許多“全域性”優化(比如內聯動態載入的程式碼能力)。

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

相關文章