看板 Soft_Job 關於我們 聯絡資訊
※ 引述《Ommm5566 (56天團)》之銘言: : ※ 引述《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這句 : 所以近年平行演算法正夯 基本上語言現在都要提供不同等級的平行工具 GC最大的好處 就是讓語法更簡潔r 專案需要管理記憶體 => 不能用gc缺乏掌控權的語言 專案不需要管理記憶體 => 當然用有gc的語言 吃飽太閒 小東西也要自己在那管理記憶體ㄇ 當然記憶體要怎麼管理 也沒有什麼技巧, 頭腦清楚就知道怎麼寫了 ~~~~ 這不是很基本ㄇ QQ 怎麼講這麼久 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.150.160.219 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1514183592.A.749.html ※ 編輯: cpf0119 (118.150.160.219), 12/25/2017 14:34:08 ※ 編輯: cpf0119 (118.150.160.219), 12/25/2017 14:35:36 ※ 編輯: cpf0119 (118.150.160.219), 12/25/2017 14:36:05
gmoz: QQ 12/25 18:13
Sidney0503: 如果 Java 真的有 Garbage Collection 的話,大部份 12/25 18:49
Sidney0503: 的程式應該在剛開始執行的時候就把自己給回收了 12/25 18:49
Sidney0503: --JokeKappa 12/25 18:49
zephyrhymn: 二樓的推文蠻好笑的XD 12/26 14:09
zephyrhymn: 開發大型專案時 很難判斷回收的時機 因此推給GC 12/26 14:10
zephyrhymn: 處理也只能說是折衷的辦法 12/26 14:10