-1

それらを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;         
  }

このようなエラーはどのように発生しますか? どうすればその問題を解決できますか?

4

1 に答える 1

1

このようなエラーはどのように発生しますか?docsアレイにはメモリが必要なため、1,000万エントリを追加すると、1 GBのメモリである100x1,000万バイト(各docエントリが100バイトの場合)を使用することになります。

提案された解決策:たぶん、1000エントリのバッチで生成-挿入サイクルを実行してみてください。したがって、1000個のドキュメントを生成し、それらを保存して、次の1000個のドキュメントなどにアレイを再利用します。

于 2012-12-22T13:00:46.430 に答える