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