MongoDB:Javascript内存不足

时间:2012-12-22 12:52:38

标签: javascript mongodb out-of-memory

我正在生成一些随机数据,以便将它们存储在mongodb中。 通过生成大量数据并将它们首先存储在一个数组中(用于将生成与插入测量分开),会发生内存不足错误。

代码:

for (i=0; i<amount; i++)
{                                       
doc = {starttime:get_datetime(), endtime:get_datetime(), tos: null, sourceport: get_port(), sourcehost: get_ip(), duration: get_duration() , destinationhost: get_ip(), destinationport: get_port(), protocol: get_protocol(), flags: get_flags(), packets: get_packets()};
docs[i]=doc;
}

我选择了金额= 10.000.000。

所有功能如下:

function get_flags( )              
  {                                   
     var tmpstring= Math.floor((Math.random()*8)+1); 
     return tmpstring;         
  }

如何发生此类错误?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如何发生此类错误? docs数组需要内存,因此添加1000万个条目意味着使用(例如)100x10,000字节(如果每个doc条目为100字节),即1GB内存。

建议的解决方案:也许尝试以1000个条目的批量运行生成插入循环。因此,生成1000个文档,保存它们并将数组重用于下一个1000个文档,依此类推。