※ 引述《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这句
所以近年平行算法正夯 基本上语言现在都要提供不同等级的平行工具