查看单个帖子
  #49 (permalink)  
旧 2008-02-29
fixopen fixopen 当前离线
普通会员
 
注册日期: 2003-08-25
帖子: 80
fixopen 正向着好的方向发展
默认 回复: 请教各位大大关于动态内存管理的问题……

有些东西,一次释放多个跟多次释放的消耗是不同的。
比如STL容器,一次insert多个,跟多次insert一个,其代价一般是不同的。

大多数同质的资源在组织的时候都是组织成链表什么的,所以延后释放会有一些优势。

更何况,延后释放可以在运行时作出,根据运行时的负载状况,找到更合适的时机干这个不产生效益的脏活累活还是有好处的。
当然,这样一来,似乎又回到GC的老路上了。不过,我这儿并没有要求compiler把已知的信息都扔掉,然后运行时的gc再一次的恢复这些信息,它们完全可以协作完成这个事情。

对了,我强调一下,sjinny说的信息丢失是我强烈认同的。使用关系图在编译期就能得到一定程度的构建,不需要在运行时完全从零开始构建。着也是sjinny比较喜欢refcount的原因,因为,毕竟,程序逻辑中表达了的使用关系图,在运行时也采用了。当然,我不是说refcount就好,但是某种改进的应该不错,并且显然不会影响程序的局部性。
回复时引用此帖