2012-02-06 236 views
2

我面臨的一個大問題與PDFBOX:我試圖加載的10Mb(檢驗.pdf)的文件,我需要400 MB其裝載到JVM: 以下是代碼示例:PDFBOX內存不足

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 2012-02-06 19:03:27

+0

噢。只是。我打印所有代碼 – brianbro 2012-02-06 19:13:56

+0

至少,您應該提供您正在使用的PDFBox版本,如何編譯您的示例,您正在使用哪種操作系統等。 – ipavlic 2012-02-23 08:35:53

回答

2

不,這是不正常的。

我注意到你還沒有關閉文檔(必需的,請閱讀documentation)。也許這在多次運行中積累。在加載文檔之前,您也不提及內存使用情況。

+0

可以在這裏找到一些提示:https://pdfbox.apache.org/2.0/faq.html#outofmemoryrrror – 2017-03-05 19:59:14