2012-02-06 3 views
2

내가 PDFBOX으로 큰 문제에 직면하고있다 : 나는 10M 바이트 (있는 test.pdf)의 파일을로드하기 위해 노력하고 내가 JVM에로드 400 메가 필요 : 여기 코드 샘플입니다 :PDFBOX에서 OutOfMemory

final File mainFile = new File(
      "C:/test.pdf"); 
    System.out.println("File size: " + mainFile.length()); 
    try { 
     PDDocument doc = PDDocument.load(mainFile); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println("Used Memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())); 
} 

정상입니까?

+0

40MB 일 수 있습니까? 400이 당신이하고있는 유일한 것이라면 너무 많은 것입니다. – Eugene

+0

오 예. 그냥. 나는 당신에게 모든 코드를 인쇄한다 – brianbro

+0

적어도, 당신은 당신이 사용하고있는 PDFBox 버전, 예를 어떻게 컴파일하는지, 어떤 운영 체제를 사용하고 있는지 등을 제공해야한다. – ipavlic

답변

2

아니요, 정상적이지 않습니다.

문서를 폐쇄하지 않았 음을 확인했습니다 (필수 내용은 documentation을 읽으십시오). 아마도 그것은 여러 번의 실행으로 축적되었습니다. 또한 문서를로드하기 전에 메모리 사용량을 언급하지 않습니다.

+0

몇 가지 힌트는 여기에서 찾을 수 있습니다. https://pdfbox.apache.org/2.0/faq.html#outofmemoryrrror –