2012-08-23 2 views
2

내 node.js 서버를 통해 mongoDB 인스턴스에 2000 x 2000 2 차원 배열을 삽입하려고합니다.node.js의 절차 2 차원 배열 mongoDB 삽입시 메모리가 부족합니다.

가 는 지금 내가하고 있어요 방법은

: 이제

for (i=0; i<2000; i++){ 
      //i = height of the tile map 
      for(x=0; x<2000; x++){ 
       //x is the width of the tile map 
       driver.mongo.insert('worldTiles', {loc: [x,i], elevation: obj.server.theArray[i][x]}, function (err,results){ 
        if(!err){ 

        }else{ 
         console.log('Ran into an error inserting into worldTiles on Mongo'); 
        } 
       }) 
      } 
      console.log(i); 
     } 

, 내가 직면하고있는 문제는 주변 라인 576 내 Node.js를에서 인스턴스가 크게 저하되는 것이다 (한 줄에 40 초당 처리 그렇지 않으면 메모리가 부족합니다. 나는 어떻게/왜 이런 일이 일어나는 지 이해하지 못합니다.

이 문제에 올바르게 접근하고 있습니까? 내가 어떻게 fladddering없이 내 데이터베이스 에이 2 차원 배열을 얻을 수있는 아이디어?

도움 주셔서 감사합니다.

+0

mongodb 드라이버는 무엇입니까? 필자는'driver.mongo.insert' 문법에 익숙하지 않다. – JohnnyHK

+0

꽤 기본적인 private 드라이버이며 nativeParser를 래핑합니다. 다른 드라이버로 시도해 볼 수 있습니다 ... 추천하는 제품이 있습니까? – Mavorus

+0

JavaScript를 지원하는 표준 10gen : https://github.com/mongodb/node-mongodb-native – JohnnyHK

답변

1

내 mongoDB 인스턴스의 공급자에 문제가있는 것처럼 보입니다. 방금 jitsu에 mongo 인스턴스를 스풀링 할 때 메모리 사용량의 크기가 ~ 64MB로 제한된다는 것을 알았습니다. 따라서 정확히 그 시점에서 "메모리 부족"오류가 발생합니다.

위시 그들은 어떻게 든 메모리가 부족 무슨 장치... 롤 눈를 포함하는 오류 메시지가 좀 더 설명 할 것입니다.

케이스가 닫혔습니다.