2013-12-12 4 views
1

Java 힙 크기 메모리 오류가 발생하는 Java 응용 프로그램이 있습니다. 내 응용 프로그램은 .csv 형식으로 파일을 변환하고 DB에로드하는 것입니다. 파일 내용이 적 으면 응용 프로그램이 잘 작동합니다. 그러나 내가 수십만 개의 레코드를 가지고있을 때 나는 힙 크기 메모리를 얻고있다. InputStream, OutputStream, BufferedWriter 등의 클래스를 사용할 때 메모리 누수가 발생할 수있는 가능성은 무엇입니까?이 힙 크기 메모리 오류를 해결하는 데 도움을주십시오. 나는 일주일 동안 붙어있다. 아래에 주어진 힙 크기 오류는 -Xmx ##을 명령 줄에 추가해야하는 파일을 실행할 때Java 힙 크기 메모리

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

+1

응용 프로그램의 코드를 제공 할 수 있습니까? – hveiga

답변

1

과 같이 나타납니다.

java -Xmx4G 

은 4GB의 사용 가능한 JVM을 제공합니다.

EDIT : @Oleg와 같이 한 번에 한 비트 씩로드해야합니다.

+0

사과드립니다. 힙 크기 메모리를 늘리는 것에 대해 명확하지 않습니다. 내 질문은, 내가 응용 프로그램을 실행할 때마다, 나는 위의 코드로 응용 프로그램을 실행하기 전에 힙 크기를 늘려야합니까? – user1929839

0

힙 크기를 늘리려면 명령 줄에 java -Xmx2048m을 사용할 수 있습니다.

메모리는 최대 2GB입니다.

그래서, 당신은 메모리에 전체 파일을 읽고 more

4

이 링크를 따라하고 DB로 세척합니다.

대신 파일 덩어리를 메모리로 읽어 들여 DB로 플러시해야합니다.

코드 없이는 더 자세한 답변을 드릴 수 없습니다.

+0

파일을 .csv 형식으로 변환하는 동안 전체적으로 수행하지만 DB에 레코드를 업로드하는 동안 레코드 전체를 DB에로드하지 않습니다. 배치별로 배치를로드합니다. – user1929839

0

힙 크기를 늘릴 수 있습니다.

코드를 공유 할 수 있다면 리소스 사용률을 줄일 수있는 방법을 알려줄 수 있습니다.