많은 수의 SQL 문을 하나의 파일에 작성한 다음 압축합니다. 그러나 때때로 사용자는 SQL 문을 생성하기 위해 많은 수의 항목을 선택할 수 있습니다. 예를 들어, SQL zip 파일에는 결과로 1 백만 개 이상의 문자가 각각 4 개의 파일이 포함될 수 있습니다. 오류 :ToStringBuilder (apache commons)의 메모리 사용량을 줄입니까?
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
그러나 이것은 "Java 힙 공간 java.lang.OutOfMemoryError와"에서 충돌 프로그램에서 큰 메모리 사용 스파이크 결과가 발생합니다 존재하는 SQL 생성에서
는 기능에 따라 달라집니다 . 힙 크기를 늘리려고했지만 프로그램이 여전히 느리고 여전히 가끔 충돌이 발생합니다.
위의 방법의 메모리 사용을 줄이는 방법은 있습니까? 전체 개체를 문자열로 출력해야합니다 그 이름뿐 아니라). 아래 그림은 응용 프로그램이 부팅되고, 잠시 동안 유휴 상태로 있으며 다음을 시도하는 것입니다. 충돌하기 전에 실행.
그리고 여기에 메모리를 사용하는 것입니다 : 나는 같은 오류 ("java.lang.OutOfMemoryError와 : Java 힙 공간")했다
교양있는 추측을하기위한 정보는 거의 없습니다. 파일 작성 코드를 제공 할 수 있습니까? – lwi
당신은 당신의 접근 방식을 바꿔야한다. 나는 File 객체를 사용하여 문제를 해결할 수있는 결과를 저장한다면, File 객체로부터 zip을 쓰는 것이 더 낫다고 생각한다. –
'ToStringBuilder'는'StringBuffer'만을 사용하고 출력 스트림은 사용하지 않기 때문에 파일에 쓸 때까지 메모리에 전체 객체 문자열을 보유해야합니다. pojos를 파싱하는 동안 문자열을 덤프 할 수있는 다른 방법을 들여다 볼 수 있습니다. –