RAM密集程序的早期红宝石退出

时间:2016-05-18 02:54:01

标签: ruby exit

我正在努力让我的Ruby文件打印出所有可能的IP。

但是,它过早退出而没有错误。

require 'ipaddress' #Is Installed

RUBY_GC_HEAP_GROWTH_FACTOR = 0.1 
#Changes How Much RAM Is Taken Every Request (Tested And Removed, Not The Problem)

#Exits After Here

ip = IPAddress "0.0.0.0/24" #First Range
ip.to('255.255.255.255') #End Range

#Exits Before This Point

out_file = File.new("out.txt", "w") #Create & OpenFile
out_file.puts("#{ip}") #Output Variable To File
out_file.close #Save And Exit
sleep(8)

RAM不是问题,因为它具有8Gb的价值,并且在达到RAM限制之前代码已经退出。

导致程序关闭的原因是什么?

1 个答案:

答案 0 :(得分:0)

我认为你走在正确的轨道上,但你应该以稍微不同的方式使用宝石:

ip = IPAddress "0.0.0.0/0"

File.open("out.txt", "w") do |file|
  ip.each do |ip_address|
    file.puts ip_address
  end
end

sleep(8)

当我测试它时,我在笔记本电脑上使用了有限(且合理)的RAM量。但是,我没有写到文件,只是写到控制台。希望你准备好处理这将产生的文件大小。