Re: [討論] 2018 各語言就業工作前景

作者: Ommm5566 (56天團)   2017-12-25 10:11:01
※ 引述《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這句
所以近年平行演算法正夯 基本上語言現在都要提供不同等級的平行工具
作者: steve1012 (steve)   2017-12-25 11:02:00
smart pointer 已經簡化事情太多 只要搞清楚ownership幾乎不需要在操心管理
作者: Jockey66666 (往事已成追憶)   2017-12-25 11:51:00
用smart pointer就不需要new delete了但我遇過的同事大部分都還是不太愛用習慣問題而已
作者: steve1012 (steve)   2017-12-25 12:12:00
我們幾乎已經強制用了 安全性高太多了 語意又非常明確尤其 unique ptr
作者: loveflames (咕啾咕啾魔法陣)   2017-12-25 12:16:00
要注意reference cycle
作者: steve1012 (steve)   2017-12-25 12:21:00
所以我們幾乎都只用 unique ptr 很多多情境下 unique ptr+raw ptr就夠用
作者: senjor (哞哞)   2017-12-25 12:22:00
學C#的是不是也應該要學學ptr的相關知識比較好?
作者: loveflames (咕啾咕啾魔法陣)   2017-12-25 13:08:00
某些極端特例會需要自己管理資源,例如把smart ptr放到union內,只是應該不會沒事這樣弄
作者: Clangpp (Clang++)   2017-12-25 16:54:00
媽的 我聽朋友說他公司還有老rd嫌c++11太新咧
作者: testPtt (測試)   2017-12-25 17:43:00
我們幾乎都只用 auto ptr ^_^
作者: loveflames (咕啾咕啾魔法陣)   2017-12-25 18:36:00
auto ptr....
作者: kwpn (ITSST)   2017-12-25 21:35:00
使用auto_ptr的缺點是 要了解它的潛在問題才不會用錯
作者: loveflames (咕啾咕啾魔法陣)   2017-12-25 21:46:00
deprecated的意思不是不支援,只是不宜使用,未來版本可能拿掉到17才拿掉

Links booklink

Contact Us: admin [ a t ] ucptt.com