Jan'uary » 日志 » 怒了
怒了
Jan 发表于 2008-01-22 20:23:01
相同的算法,为什么我的总是outofmemory? 555
ruby 1.8在使用到1G的时候就暴了,ruby 1.9在把所有内存耗光后暴掉,不是说ruby string对象是cow的吗,靠

update: 终于搞定,问题出在Array#sort上面,string的确是cow的,但是sort会调用dup - 我没有深究,貌似是dup引起了真正的对象复制,导致内存暴涨,可能dup太底层了所以绕过了cow机制?用sort!就可以避免这个问题,内存消耗可以控制得很低。奇怪的是只能在1.8下运行通过,在1.9中还是内存耗光然后暴掉,看来1.9还真是不能用啊。
ruby 1.8在使用到1G的时候就暴了,ruby 1.9在把所有内存耗光后暴掉,不是说ruby string对象是cow的吗,靠

update: 终于搞定,问题出在Array#sort上面,string的确是cow的,但是sort会调用dup - 我没有深究,貌似是dup引起了真正的对象复制,导致内存暴涨,可能dup太底层了所以绕过了cow机制?用sort!就可以避免这个问题,内存消耗可以控制得很低。奇怪的是只能在1.8下运行通过,在1.9中还是内存耗光然后暴掉,看来1.9还真是不能用啊。
曾经的这一天...
- » 2007年: Console 2.0 beta
- » 2007年: JRuby二三事
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
