※ 引述《tofuflower (無)》之銘言:
: 修正:經 Sirctal, chiaming0914, elements 指正,GC 這點是我錯誤論述。
: 下面用雙引號匡起來的內容就是被指正有問題的部分,請不要盡信。
: 保留爭議原文讓後續讀者知道這裡原先的爭論點是什麼。
: "但用 C++ 就要自己處理 GC 問題。而我認為自己刻的 GC 能比 JVM GC 優秀的工程師應
: 該是少數中的少數,因此把 GC 問題也列入考量再加上 JIT 技術的話, C++ 效能並不
: 一定總是能樂勝 Java,當然主要還是要看使用情境。"
Java因為有gc需要持續作檢查 效能已經輸一截
run-time效能取決於記憶體釋放時機
Java批次釋放絕對是輸compiler時期就決定釋放的c++
不過Java有一種情況可以有逼近C++的效能
就是customized garbage collector 也是靠人為去決定釋放時機
C++釋放不好有兩個原因
1. 模組沒切好 這個狀況就算是java的gc一樣難以判斷何時回收
2. 不會寫delete或free 你有三個選擇
第一是從此放棄需要delete/free的語言
第二是C++11以來就提供了smart pointer像是unique_ptr 和shared_ptr
第三個好好地學記憶體管理
multi-thread的部分
因為cpu運算速度早就飽和才有free lunch is over這句
所以近年平行演算法正夯 基本上語言現在都要提供不同等級的平行工具