오류 중에 'Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded' 는
메모리 한계를 초과 했기 때문에 발생한다.
두 가지 해결 방법은 다음과 같다.
-Xmx 옵션으로 메모리를 더 할당.
메모리가 부족하여 가비지 컬렉션이 이루어 졌으나,
새로 확보된 메모리가 전체 메모리의 2% 미만이어서 생기는 오류.
더 이상 가비지 컬렉션을 할 수 없을 정도로 메모리를 사용한다는 것.
기존) java -Xms1g -Xmx1g -jar Project.jar
해결) java -Xms4g -Xmx4g -jar Project.jar
String 대신 StringBuilder를 사용
: 문자열에 여러 가지 조작을 가할 경우 변하지 않는 문자열의 경우, String을 사용하면 된다.
String을 사용하여도 컴파일러가 적당히 변환해 준다고는 하지만, 컴파일러가 완벽하지는 하다.
참고
- 실행 속도
StringBuilder > StringBuffer >> String
- 메모리 사용량
StringBuilder = StringBuffer << String
자세한 비교는 http://hongsgo.egloos.com/2033998
출처: http://donzbox.tistory.com/531
'[개발] Programming > Java' 카테고리의 다른 글
자바 BigDecimal to int, 값 비교하는 방법 (0) | 2019.06.12 |
---|---|
자바 문자열 비교 함수 compare(), compareTo() (0) | 2018.11.09 |
자바, 클라이언트 정보 조회 (IP, 에이전트, 브라우저, OS 정보) (0) | 2018.11.09 |
자바 Exception:Broken pipe 오류 해결 방법 (0) | 2018.11.09 |
자바 쿠키 다루기 (쿠기 생성, 조회, 삭제) (0) | 2018.11.08 |
댓글