2012-04-19 4 views
0

render()에서 libgdx를 사용하여 메쉬 배열을 렌더링해야합니다. meshArr 배열의 getMeshToRender() 메서드에서 새 데이터를 가져올 때마다 처리기를 사용했습니다.libgdx에서 렌더링하는 동안 OutOfMemoryError

 onCreate() 
     { 
      handler.removeCallbacks(sendUpdatesToUI); 
      handler.postDelayed(sendUpdatesToUI, 1000); // 1 second 
     } 

     Runnable sendUpdatesToUI = new Runnable() 
    { 
      public void run() 
      { 
       //DisplayLoggingInfo(); 
       getMeshToRender(); 
       handler.postDelayed(this, 1000); // 1 seconds 
      } 
     };   

    getMeshToRender() 

{ 

    ....... 
    meshArr = new Mesh[numMesh]; 
    ....... 
} 

Render() 메서드에서는 처음에 해당 meshArr을로드하지만 OutOfMemoryError와 충돌합니다.

모든 해결책은 유용 할 것입니다. 감사합니다.

+1

을 사용하여 힙 크기를 늘려야합니다. – sgowd

+0

나는 매우 큰 배열을 가지고 있고 그것은 이미 다음과 같은 에러를 내고있다 : 49.908MB에서 48.000MB까지 클램프 대상 GC 힙. 여기, 매 초마다 배열에 새로운 값을로드해야합니다. –

+0

JVM 힙 크기가 어떻게 되나요? – sgowd

답변

0

간단하고 현실적인 대답은 적은 메모리를 사용하는 것입니다.

너무 많은 다른 메쉬를 사용하고 있거나 전체 아이디어를 다시 생각해보아야합니다. 아니면 이전의 메시를 교체하고 올바르게 폐기하지 않아야합니다. 사용하지 않는 메쉬를 해제하려면

, 당신은 IMO Mesh#dispose()

관련 문제