1.5G xml 파일이 있고 DOM java 파서를 사용합니다.이 문제를 해결 한 후에도 DOM은 큰 데이터를위한 좋은 도구는 아니지만 여전히 궁금합니다. 아래의 문제에 관해서). 내 문제는 "OutOfMemoryError : Java 힙 공간"입니다. 이미 존재하는 대답을 기반으로 eclipse.ini -xms와 -xmx 크기를 모두 8096m으로 변경하고 eclispe 창에 힙 상태를 표시하여 힙 크기의 크기를 모니터링합니다. 익숙한. 이 코드를 실행할 때, "80m/8096m"을 사용하고 "out memory"버그를 버렸을 때 "8096m - 80m"과 같이 명확하게 사용되지 않은 공간이 분명히 있지만 왜 메모리가 부족한 지 궁금합니다. .8GB 힙 크기가 할당 된 메모리가 잠겨 있음
답변
I wonder why there is clearly huge space not used, i.e. "8096m - 80m ", but still get to out of memory.
당신은 뭔가 1 잘못 해석된다. 그리고 (IMO) 가장 가능성있는 생각은 IDE (Eclipse)에서 사용하는 메모리와 응용 프로그램을 실행하는 데 사용되는 메모리를 혼동하고 있다는 것입니다.
이상한 (그리고 권장 할 수없는) 일을하지 않는 한, 응용 프로그램은 힙 매개 변수가 IDE 힙 매개 변수와 독립적 인 별도의 JVM에서 실행됩니다. 당연히 (나에게) 실제로 Eclipse IDE 프로세스의 메모리 사용량은 작다. 애플리케이션이 실행되는 곳이 아니기 때문이다.
Eclipse 용 힙 매개 변수를 조정해도 응용 프로그램 JVM 힙 매개 변수와 아무런 차이가 없습니다! 실제로해야 할 일은 응용 프로그램의 Eclipse 실행기 구성에서 힙 매개 변수를 설정하는 것입니다. Eclipse 내에서. 또는 명령 프롬프트에서 직접 응용 프로그램을 시작하십시오.
하지만이 경우에는 문제가 될 수 있습니다. 매우 놀랄 것입니다 8GB 자바 힙에 DOM으로 1.5GB XML 파일을 표현할 수 있다면. 표현의 오버 헤드가 너무 큽니다.
1 - 이클립스 IDE 자체가 메모리 부족 경우, 그것은 끔찍하게 느린 얻을하고 충돌 것입니다. 거기 있었어. 보았다. 일반적으로 매우 큰 코드 기반을 개발하거나 검사 할 때 발생합니다.
해답을 찾아 주셔서 감사합니다! 난 아직도 두 가지 혼란스러운 것들을 가지고있다 : 1. 어떻게 일식에서 jvm 메모리를 설정하는 것이 더 구체적 일 수 있는가 2. jvm과 일식 메모리, 변수가 jvm 메모리에 저장된 다음 일식 메모리는 무엇을 위해 사용 되는가? – michael
1) http://stackoverflow.com/questions/15313393/how-to-increase-application-heap-size-in-eclipse. 2) 마치 두 대의 자동차를 가지고있는 것과 같습니다. 그들에는 2 개의 휘발유 탱크가있다. 한 자동차의 가솔린 탱크에 가솔린을 넣고 다른 자동차의 가솔린 탱크에는 가솔린을 넣지 마십시오. Eclipse를 실행하는 JVM은 애플리케이션을 실행하는 JVM과 다릅니다. –
감사합니다 스티븐. 두 가지 빠른 질문 1. 이클립스에서 일식 메모리 사용을 모니터링 할 수 있기 때문에 jvm 메모리 사용을 모니터링하는 방법이 있습니까? jvm 메모리를 4G로 변경하면 dom에서 큰 데이터를 처리하지 못할 수도 있습니다. 2. jvm 및 일식 메모리에 대한 차이점에 대한 명확한 아이디어를 얻지 못했습니다. 링크를 제공하거나 더 설명해 주시겠습니까? 아날로그는 다소 혼란 스럽습니다. – michael
- 1. 어디에 할당 된 메모리가
- 2. Android가 충분하지 않음 할당 된 힙
- 3. 8GB RAM 노트북에 265GB 이상의 메모리가 있습니까?
- 4. 힙 메모리가 증가하고 있습니다.
- 5. 메모리 할당, 스택 및 힙
- 6. 힙 또는 스택에서 메모리 할당?
- 7. 안드로이드에서 Mifare Ultralight로 쓰기 - 메모리가 잠겨 있습니까?
- 8. 사용 된 힙 크기가 지속적으로 증가합니다.
- 9. 자바 힙 크기가 증가합니다
- 10. gwt 힙 메모리가 많이 필요합니다.
- 11. 자바 힙 메모리가 TOP보다 큽니다
- 12. R의 예약 된 메모리가 할당 된 배열의 두 배입니다.
- 13. MULTIMAP의 경우 할당 된 메모리가 해제되었는지 확인하려면
- 14. 왜 EKG에 할당 된 메모리가 표시되지 않습니까?
- 15. nsapi 초기화 기능에 할당 된 메모리가 영구적입니까?
- 16. 함수가 반환되면 함수에서 할당 된 메모리가 해제됩니까?
- 17. Marshal.AllocHGlobal으로 할당 된 메모리가 손상 되었습니까?
- 18. 성능 테스트를 위해 RAM 크기와 JVM 힙 크기가
- 19. 메인 클래스에 할당 된 메모리가 서블릿에서 실행 되었습니까?
- 20. 삭제 된 힙 할당 항목이 true로 평가됩니다.
- 21. 메모리 누수가 발생했지만 할당 된 메모리가 할당 해제되었습니다.
- 22. NodeJS : V8 메모리 힙 외부에 할당 된 버퍼를 해제하는 방법
- 23. 덤프 된 hprof 파일의 총 힙 크기가 9.6MB인데 실제 힙 크기가 75MB인데 반해
- 24. Android 힙 크기가 16MB보다 작습니다.
- 25. 덩어리로 된 파일을 NSData로 읽는 중에도 메모리가 꺼져 있음
- 26. C++ 힙 메모리 할당/할당 해제
- 27. 원시 할당 실패시 Java가 힙 덤프를 생성하지 않음
- 28. Android 버전의 최소 힙 크기가 있습니까?
- 29. 자바 힙 할당
- 30. 힙 할당 객체 생성자
"버그"? 아니요, 코드가이를 수행하고 있습니다. Visual VM과 같은 것으로 코드를 프로파일 링하여 메모리가 소비되는 곳을 확인하십시오. – duffymo
이클립스가 아닌 모든 메모리를 사용하는 프로그램이라면 eclipse가 ecliipse 자체에 대한 VM 인수가 아닌 * 프로그램 *을 실행하는 데 사용하는 VM 인수를 변경해야합니다. 이 작업을 수행하는 방법은 http://stackoverflow.com/questions/4175188/setting-memory-of-java-programs-that-runs-from-eclipse를 참조하십시오. – wakjah
코드가 여전히 OOME을 던지면 1.5GB xml 및 -Xmx8096m의 경우 코드에서 개선이 필요한 부분이 있다는 것이 거의 확실합니다. 대용량 데이터 유형의 경우 일반적으로 SAX 구문 분석이 더 좋습니다. 또한 Xmx를 어떻게 지정하고 있습니까? 우리를 보여줄 수 있습니까? – SomeDude