2010-12-07 3 views
0

내 j2me 응용 프로그램이 JBLEND의 메모리 부족 예외를 표시합니다. 그것은 JBED에서 잘 작동합니다. 메모리를 모니터링함으로써 document.parse (xmlParser) 메서드가 많은 메모리를 소비한다는 것을 알게되었습니다. 나는 exciple에 대한 이유는 메모리가 XML을 파싱 한 후에 해방되지 않는다고 생각한다. 맞아??? 어떻게 문제를 해결할 수 있습니까 ???j2me 응용 프로그램이 JBLEND의 메모리 부족 예외를 표시합니다.

답변

1

document.parse(xmlParser)이 반환하면 더 이상 필요하지 않게 될 때 바로 참조 해제해야합니다. 즉, 반환 된 객체를 가리키는 입력란을 null (또는 간접 참조를 설정 해제)으로 설정해야합니다.

나는 블랜드 (JBlend) 또는 인 Jbed을 사용한 적이 있지만, Wireless Toolkit respectively JaveME SDK 또한 메모리와 객체 참조 문제를 추적하는 데 도움이되는 좋은 메모리 프로파일 러를 가지고있다.

+0

나는 document = null로 문서를 derefernced했다. document.parse (xmlParser) 메서드를 호출 한 후 그러나 결과는 동일합니다. 메모리를 확보하기 위해 무엇을 할 수 있습니까 ?? – asifkt

+1

@asifkt : 좋은 습관은 아니지만 실제로는 메모리가 부족할 때 자동으로 실행되어야하지만'System.gc()'를 호출하여'document = null'을 설정 한 후에 가비지 컬렉터를 강제 실행할 수 있습니다. 이와 관련하여 [이 게시물은 여기에 있습니다] (http://stackoverflow.com/q/899241/151299)와 [JavaME 응용 프로그램의 메모리 관리에 대한 일반적인 힌트] (http://j2medevcorner.wordpress.com)도 읽어보십시오./2007/02/19/memory-management-in-j2me /). –

+0

@ Oben : 더 많은 메모리를 소비하는 메소드 다음에 GC를 호출했습니다. 그러나 예외 발생 빈도가 증가합니다. – asifkt