看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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這句 所以近年平行演算法正夯 基本上語言現在都要提供不同等級的平行工具 -- 作者: fleece (...) 看板: KoreanPop 標題: [問題] 請問一個叫O.S.T的歌手 時間: Fri Feb 19 12:25:09 2016 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.1.48.184 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1514167866.A.0D3.html ※ 編輯: Ommm5566 (123.1.48.184), 12/25/2017 10:25:44
steve1012: smart pointer 已經簡化事情太多 只要搞清楚ownership 12/25 11:02
steve1012: 幾乎不需要在操心管理 12/25 11:02
Jockey66666: 用smart pointer就不需要new delete了 12/25 11:51
Jockey66666: 但我遇過的同事大部分都還是不太愛用 12/25 11:53
Jockey66666: 習慣問題而已 12/25 11:53
steve1012: 我們幾乎已經強制用了 安全性高太多了 語意又非常明確 12/25 12:12
steve1012: 尤其 unique ptr 12/25 12:12
loveflames: 要注意reference cycle 12/25 12:16
steve1012: 所以我們幾乎都只用 unique ptr 很多多情境下 unique p 12/25 12:21
steve1012: tr+raw ptr就夠用 12/25 12:21
senjor: 學C#的是不是也應該要學學ptr的相關知識比較好? 12/25 12:22
loveflames: 某些極端特例會需要自己管理資源,例如把smart ptr放 12/25 13:08
loveflames: 到union內,只是應該不會沒事這樣弄 12/25 13:09
Clangpp: 媽的 我聽朋友說他公司還有老 12/25 16:54
Clangpp: rd嫌c++11太新咧 12/25 16:54
testPtt: 我們幾乎都只用 auto ptr ^_^ 12/25 17:43
loveflames: auto ptr.... 12/25 18:36
kwpn: 使用auto_ptr的缺點是 要了解它的潛在問題才不會用錯 12/25 21:35
C++11就把auto_ptr deprecate掉了 使用auto_ptr是C++0x?
loveflames: deprecated的意思不是不支援,只是不宜使用,未來版 12/25 21:46
loveflames: 本可能拿掉 12/25 21:46
loveflames: 到17才拿掉 12/25 21:48
喔喔 謝謝 ※ 編輯: Ommm5566 (114.36.79.157), 12/25/2017 21:48:36