2012-12-22 3 views
-1

mongodb에 저장하기 위해 임의의 데이터를 생성 중입니다. 많은 양의 데이터를 생성하고 어레이에 먼저 저장하면 (측정을 위해 삽입으로 생성을 분리하기 위해) 메모리 부족 오류가 발생합니다.MongoDB : Javascript out of memory

코드 :

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; 
} 

내가 예를 들어, 선택 amount = 10.000.000.

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

같은 오류가 발생하는 않는 방법 :

모든 기능처럼? 어떻게 그 문제를 해결할 수 있습니까?

답변

1

어떻게 이러한 오류가 발생합니까? 문서 배열에 메모리가 필요하므로 10million 항목을 추가하면 1GB 메모리 인 최대 (예 : 100x10million) 바이트 (각 doc 항목이 100 바이트 인 경우)를 사용하게됩니다.

제안 된 솔루션 : 아마도 1000 개 항목의 배치로 생성 - 삽입주기를 실행 해보십시오. 따라서 1000 개의 문서를 생성하고 저장하고 다음 1000 개의 문서 등을 위해 배열을 다시 사용하십시오.

+0

음 ... 여러 사이클로 나누는 것이 유용 할 것 같습니다. – Tyzak