查看单个帖子
  #81 (permalink)  
旧 2008-03-06
sjinny 的头像
sjinny sjinny 当前离线
普通会员
 
注册日期: 2008-02-01
帖子: 66
sjinny 正向着好的方向发展
默认 回复: 请教各位大大关于动态内存管理的问题……

RVO感觉有点像为了性能优化而破坏了一些约束。

关于GC:
首先这个“优势”是gc相对于谁而言的什么方面的优势。
在我看来,唯一可能有优势的方面,就是程序员对于内存的管理可能可以少花一点精力。但是,我只能得到一个对象被启用的时机(构造函数),但是我却得不到一个对象被弃用的时机,而其他技术和gc的很大的一个区别就是能够得到弃用时机(析构函数)。如果gc里的析构函数是可用的,那么得到的也只是对象被销毁的时机,而不是“不再被需要的时机”。
所以,即使不考虑优化时要理解内存的使用和释放会因为gc的“自主性”而更困难,gc首先就因为延后释放而不适宜用于管理其它资源。
如果gc不能提供一个通用的资源管理能力,那么只会使资源管理复杂化。
我觉得OO的一个特点就是把数据和行为绑定在一起,并且把构造函数和析构函数作为访问启用时机和弃用时机的途径。而gc却要把数据的管理和行为管理分开来(毕竟关闭文件之类的资源管理主要就是一些特殊的行为),我想这就是问题所在。
回复时引用此帖