繁体   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