- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
이클립스 Out Of Memory Error 본문
OOME (Out Of Memory Error)
이 에러가 발생하면 eclipse.ini 혹은 sts.ini 에서 메모리 size를 크게 키워 줬는데,
-Xmx 를 너무 크게 설정하면 오히려 이런 에러가 발생할 수 있다는 사실을 알았다.
[출처] http://ir.bagesoft.com/657
[일부 발췌]
Java Heap 크기를 줄인다. 32bit Process가 사용 가능한 메모리 공간은 OS에 따라 2G ~ 4G로 제한된다. 하나의 Java Process가 사용 가능한 공간은 [Java Heap+Permanent Space+Native Heap]으로 이루어진다. 따라서 Java Heap이 지나치게 큰 공간을 사용하는 경우 Native Heap에서 사용 가능한 공간이 줄어들게 된다. 따라서 Java Heap 크기를 줄이면 Native Heap의 메모리 부족에 의한 OOME 문제를 해결 할 수 있다. 하지마 Java Heap 크기를 지나치게 줄이면 Java Heap 부족에 의한 OOME 현상이 발생할 수 있으므로 유의해야 한다. Java Heap 크기를 줄이는 방법은 Thread Stack Space의 부족 문제 뿐 아니라 Native Heap 부족에 의한 OOME 문제를 줄이는 공통적인 해결 방법이다.
-Xss 의 크기를 오히려 줄여야 한다. 이것은 Java Thread 하나가 사용하는 스택 메모리의 크기이다. 따라서 이 값을 크게 하면 Java Thread 를 생성할 수 없어서 에러가 난다.
[일부 발췌]
Thread Stack Size를 줄인다. 대부분의 OS에서 Thread Stack Size는 512K ~ 1M이다. 만일 많은 수의 Thread가 필요한 Application이라면 Thread Stack Size를 줄임으로써 OOME를 방지할 수 있다. 많은 경우 -Xss128k 정도나 -Xss256k 정도의 크기에서도 문제없이 작동한다. 단, Stack Size가 줄어든 만큼 Stack Overflow Error가 발생할 확률은 높아진다.
'Java' 카테고리의 다른 글
기존의 프로젝트에 Maven 도입하기 (0) | 2012.09.12 |
---|---|
Check tomcat server adapter "Publish module contexts to separate XML files" by default (0) | 2012.09.12 |
[eclipse] org.eclipse.wst.common.component 파일의 내용 (0) | 2012.09.06 |
Maven archetype List 보기 (0) | 2012.09.01 |
HttpClient 를 이용하여 프록시 프로그램 작성 (0) | 2012.08.29 |