论坛首页 编程语言技术论坛

memory exhausted

浏览 4937 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-08  
filename1 = "e:\\jxkh\\tools\\getKhbz.rb"
file1 = open(filename1,'w')
file1.print "def getKhbz(did)\n"
file1.print "  case did\n"

cs = (1..2498).to_a
for j in cs do 
  str = "    when '" + j.to_s + "';return '" + j.to_s + "';\n"
  file1.print str
end

file1.print "    else\n"
file1.print "      return ''\n"  
file1.print "    end\n"


然后我在运行getKhb.rb的时候,会出现:
getKhbz.rb:2499: memory exhausted
    when '2497';return '2497';
                  
请问这样的问题如何解决,是内存不足吗?
   发表时间:2007-04-08  
首先,你这个程序本身就有错,少了个end,也没close掉file1:
filename1 = "e:\\getKhbz.rb"  
file1 = open(filename1,'w')  
file1.print "def getKhbz(did)\n"  
file1.print "  case did\n"  

cs = (1..100).to_a  
for j in cs do   
  str = "    when '" + j.to_s + "';return '" + j.to_s + "';\n"  
  file1.print str  
end  

file1.print "    else\n"  
file1.print "      return ''\n"    
file1.print "    end\n"  
file1.print "    end\n"  
file1.close


其次,是内存耗尽了
0 请登录后投票
   发表时间:2007-04-08  
   谢谢dennis_zane,的确是少了一个end,但即使按照您说的,也会提示“memory exhausted ”错误!

    因为我有个数据库需要从oracle转换到mysql,迁移数据的时候,会涉及到上面类似的函数(一个字典性的表记录大概有2万条),现在问题是如何解决这个"memory exhausted "的问题,请大家帮帮,再次感谢!
0 请登录后投票
   发表时间:2007-04-08  
我试了下,在2400条的时候还是可以运行的,超过2500条就内存耗尽了。为什么不分批导入呢?不知道还有没有其他解决办法,或者在linux系统不会有这样的问题,我是windows server 2003下测试的
0 请登录后投票
   发表时间:2007-04-09  
俺的为何到20000条都没有任何错误呢。
0 请登录后投票
   发表时间:2007-04-09  
李超群 写道
俺的为何到20000条都没有任何错误呢。


你的系统是什么?
我是windows 2003 server ,内存1G上测试的
0 请登录后投票
   发表时间:2007-04-10  
李超群 写道
俺的为何到20000条都没有任何错误呢。

请问你是什么系统?
filename1 = "e:\\getKhbz.rb"     
file1 = open(filename1,'w')     
file1.print "def getKhbz(did)\n"     
file1.print "  case did\n"     
  
cs = (1..2500).to_a     
for j in cs do      
  str = "    when '" + j.to_s + "';return '" + j.to_s + "';\n"     
  file1.print str     
end     
  
file1.print "    else\n"     
file1.print "      return ''\n"       
file1.print "    end\n"     
file1.print "    end\n"     
file1.close  


然后 ruby getKhbz.rb

你是按照上面的来操作的吗?
0 请登录后投票
   发表时间:2007-04-10  
俺到1000000条也没有问题,生成文件都到35m了

xp 2g内存


我在只有512M内存的windows 2003试了,也没有问题
0 请登录后投票
   发表时间:2007-04-10  
jjx 写道
俺到1000000条也没有问题,生成文件都到35m了

xp 2g内存


我在只有512M内存的windows 2003试了,也没有问题


生成文件当然是没有问题,问题是你ruby getKhbz.rb这样的时候有没有出现错误?
0 请登录后投票
   发表时间:2007-04-10  
生成文件当然没问题了,问题是执行生成的getKhbz.rb时候。请各位都看清楚楼主在问什么
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics