簡體   English   中英

java.lang.OutOfMemoryError: 使用 itext PdfReader 讀取大型 PDF 文件時超出 GC 開銷限制

[英]java.lang.OutOfMemoryError: GC overhead limit exceeded when reading large PDF file using itext PdfReader

我正在嘗試使用 PDFReader 讀取 pdf 文件並重新排序頁面。 它與較小的 PDF 一起使用,但當大小超過 > 200MB 時。 它失敗並出現以下錯誤

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at com.lowagie.text.pdf.MappedRandomAccessFile$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.lowagie.text.pdf.MappedRandomAccessFile.clean(Unknown Source)
at com.lowagie.text.pdf.MappedRandomAccessFile.close(Unknown Source)
at com.lowagie.text.pdf.RandomAccessFileOrArray.close(Unknown Source)
at com.lowagie.text.pdf.PRTokeniser.close(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)

我正在使用 itext java 2.1.7 版本

嘗試使用-Xmx擴展正在運行的 Java 的堆 memory 。

看看https://alvinalexander.com/blog/post/java/java-xmx-xms-memory-heap-size-control/了解 Xmx 是如何使用的。

使用-Xmx擴展堆 memory 可能會有所幫助(正如 Pablo 所建議的那樣),但您還應該查看您的代碼並了解它為什么會產生這么多垃圾以及為什么您的代碼略低於“內存不足”標記。 這可能是代碼損壞的跡象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM