回复: 请教各位大大关于动态内存管理的问题…… 完美的确定性会带来太多的不便,从而导致工程上不可行。stack确实是确定的,但是它的表达能力并不够强。所以我们才需要heap (或者说为了得heap的表达能力代价太大). 那gc和stack作比较本来就没啥用。stack很优雅,但heap很有用。工程上可能更需要一些有用的东西吧。
.NET宣传它的GC在generation 0的一次collect平均只需要1不到毫秒,所以对performance的影响也没有想象中那么巨大。(也可以用perfmon看到,我姑且相信他的说法……)主要原因是generation 0的大小正好可以放在L1缓存,但现如今的L1 cache都够大了,放好多个string什么的没啥问题,何况还有大对象自己的GC generation.
另外扯出去,C++做的难用感觉上一个原因就是它目的太多,又要最底层的操控又要高级的抽象。另外感觉上当初设计的时候也没考虑周全…… sigh
此帖于 2008-02-15 09:16 PM 被 cat 编辑.
|