查看单个帖子
  #24 (permalink)  
旧 2008-02-19
cat cat 当前离线
高级会员
 
注册日期: 2003-11-06
帖子: 1,563
文章: 6
cat 正向着好的方向发展
默认 回复: 请教各位大大关于动态内存管理的问题……

to pora:
没有不公平啦,那是后一个release测的,大家觉得还是硬件导致的比重大一点。另外我们的这种online service C++也不敢太关注效率,动不动就crash可不行,宁可慢一点的。反正bottleneck在DB和web service call.

to sjinny:
引用:
Elminster,你这两篇我也看过的,我对你的思路的理解是:对象生存期由程序员控制,内存由gc回收……干脆就放弃了对象和内存的绑定……那么用什么样的机制来保证对象生存期控制的正确性呢?手动析构对象和手动释放内存有同样的问题,要在何时的时机析构。析构过早,要么崩溃,要么抛异常。
那就看你要什么“保证”了。我觉得在实践上,你说的那些情况,基本不可能发生。即便发生了,因为内存还没有被回收,也不会导致很不良的后果。如果你愿意给每一个对象加一个bool _isDisposed的话也可以检查出来。但是要更进一步的严谨的保证的话,你需要为此付出很多代价的,比如写程序的便利性,效率等。不划算。为最后的20%质量可能付出80%的价格,这种奢侈品我可消费不起。

ref counter一看就很慢很浪费,和你一开始说内存小CPU贵矛盾。而且中间漏写/写错这些wrapper就会提前释放或者泄露。这可不是不会发生的事情啊,以前就碰到过,查了好久的说。
这个和你说的一样是“高确定性”和“自动化”的,但是代价却不小。要高效和要自动有的时候是矛盾的。

此帖于 2008-02-19 02:47 AM 被 cat 编辑.
回复时引用此帖