在什麼情況下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為開發人員做了許多“全域性”優化(比如內聯動態載入的程式碼能力)。
一家之言,至少我的感覺是這樣……
相關文章
- 在什麼情況下,Java比C++慢很多?JavaC++
- 在什麼情況下用index unique scansIndex
- composite模式在什麼樣的情況下比較適用啊模式
- Java類什麼情況下被初始化?Java
- Oracle什麼情況下需要rebuild indexOracleRebuildIndex
- 爬蟲在什麼情況下才需要使用代理IP爬蟲
- 企業在什麼情況下引入分散式資料庫?分散式資料庫
- 為什麼使用API?什麼情況下避免使用API?API
- 什麼情況下你能接受 996996
- 什麼情況下進行效能測試
- 應用架構設計中,什麼情況下開始考慮快取?應用架構快取
- 在什麼情況下可採取區塊鏈的流程圖 - TProphet區塊鏈流程圖
- 【知識分享】企業在什麼情況下需要做負載均衡負載
- Transactional replication 的Snapshot 檔案在什麼情況下會被清除
- argv[0]在什麼情況下不等於程式名
- 什麼情況下需要搭建大資料平臺大資料
- js中什麼情況下返回值是undefinedJSUndefined
- 香港伺服器什麼情況下需要更新升級?伺服器
- 什麼情況!華為開源JDK!JDK
- Python 為什麼說 Eval 要慎用?使用 Eval 帶來的潛在風險?什麼情況下使用 Eval?Python
- vue什麼情況下需要用到this.$nextTickVue
- Linux中什麼情況下會發生程式排程?Linux
- Snowflake(雪花演算法),什麼情況下會衝突?演算法
- MySQL什麼情況下刪除資料會釋放空間MySql
- 資料庫分割槽表 什麼情況下需要分割槽資料庫
- Oracle軟體安裝 - 什麼情況下需要relink allOracle
- Go高階特性 12 | 指標詳解:在什麼情況下應該使用指標?Go指標
- Nature回應:為什麼在沒有程式碼的情況下發布AlphaFold3?
- 你的企業在什麼情況下需要人工智慧?快來看看你需要具備哪些條件與能力吧人工智慧
- java面試一日一題:講下在什麼情況下會發生類載入Java面試
- oracle組合索引什麼情況下生效?Oracle索引
- GreatSQL 中 Insert 慢是什麼情況?SQL
- 什麼情況下應該分解複雜的查詢來提升效能
- 為什麼 call 比 apply 快?APP
- 測試在cursor_sharing為force情況下執行計劃的共享情況
- 什麼情況下不要用Rust語言? - kerkourRust
- Oracle -- left join 什麼情況可以直接改成joinOracle
- 驗證碼不顯示是什麼情況