728x90
반응형
질문 : 오류 java.lang.OutOfMemoryError : GC 오버 헤드 제한 초과
JUnit 테스트를 실행할 때이 오류 메시지가 표시됩니다.
java.lang.OutOfMemoryError: GC overhead limit exceeded
OutOfMemoryError
가 무엇인지 알고 있지만 GC 오버 헤드 제한은 무엇을 의미합니까? 어떻게 해결할 수 있습니까?
답변
이 메시지는 어떤 이유로 가비지 수집기가 과도한 시간 (기본적으로 프로세스의 모든 CPU 시간의 98 %)을 많이 사용하고 각 실행에서 매우 적은 메모리 (기본적으로 힙의 2 %)를 복구 함을 의미합니다.
이것은 효과적으로 프로그램이 진행을 중지하고 항상 가비지 콜렉션 만 실행 하느라 바쁘다는 것을 의미합니다.
애플리케이션이 아무 작업도 수행하지 않고 CPU 시간을 흡수하지 못하도록 JVM에서이 Error
발생시켜 문제를 진단 할 수 있습니다.
내가 본 드문 경우는 일부 코드가 이미 메모리가 제한된 환경에서 수많은 임시 객체와 약하게 참조 된 객체를 생성하는 경우입니다.
다양한 Java 버전에 사용할 수 있으며이 특정 문제에 대한 섹션이 포함 된 Java GC 조정 안내서를 확인하십시오.
- Java 11 튜닝 가이드 에는 다양한 가비지 수집기에 대한 과도한 GC에 대한 전용 섹션이 있습니다.
- 병렬 수집 기용
- CMS (Concurrent Mark Sweep) 수집 기용
- G1 (Garbage First) 수집기에 대한이 특정 오류 조건에 대한 언급이 없습니다.
- Java 8 튜닝 가이드 및 과도한 GC 섹션
- Java 6 튜닝 가이드 및 과도한 GC 섹션 .
출처 : https://stackoverflow.com/questions/1393486/error-java-lang-outofmemoryerror-gc-overhead-limit-exceeded
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
IDEA : javac : source release 1.7 requires target release 1.7 (0) | 2021.12.06 |
---|---|
instanceof와 Class.isAssignableFrom (…)의 차이점 (0) | 2021.12.06 |
JavaScript에서 'prototype'과 'this'의 차이 (0) | 2021.12.05 |
@Transactional 주석이 속하는 곳 (0) | 2021.12.05 |
Java를 사용하여 문자열을 텍스트 파일에 저장 (0) | 2021.12.05 |