Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
适当的Java堆大小_Java_Heap - Fatal编程技术网

适当的Java堆大小

适当的Java堆大小,java,heap,Java,Heap,在尝试合并多个PDF文档时,我遇到以下错误 PDFMerger failed with the following exception: org.apache.pdfbox.exceptions.WrappedIOException at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:278) at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocumen

在尝试合并多个PDF文档时,我遇到以下错误

    PDFMerger failed with the following exception:
org.apache.pdfbox.exceptions.WrappedIOException
    at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:278)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1220)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1187)
    at org.apache.pdfbox.util.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:237)
    at org.apache.pdfbox.util.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:194)
    at org.apache.pdfbox.PDFMerger.merge(PDFMerger.java:82)
    at org.apache.pdfbox.PDFMerger.main(PDFMerger.java:44)
    at org.apache.pdfbox.PDFBox.main(PDFBox.java:83)

Caused by: java.lang.OutOfMemoryError: Java heap space
    at org.apache.pdfbox.io.RandomAccessBuffer.clone(RandomAccessBuffer.java:69)
    at org.apache.pdfbox.cos.COSStream.clone(COSStream.java:78)
    at org.apache.pdfbox.cos.COSStream.<init>(COSStream.java:102)
    at org.apache.pdfbox.pdfparser.BaseParser.parseCOSStream(BaseParser.java:409)
    at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:650)
    at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:203)
    ... 7 more
用户可以请求下载多少PDF。其目的是合并它们并提供一个已编译的PDF。因为PDF的数量和大小在编程时是未知的(在更糟糕的情况下,计数可能超过1000,每个大小在2M到30M之间)

设置堆大小的安全限制是什么?或者,如何确定运行例程的适当堆大小?以及在执行时,我希望web服务器上有什么IMAPACT?把它调到最大值有问题吗


我正在Ec2上使用T2.micro实例。

最大堆大小是您希望程序失败而不是继续使用更多内存的点。这通常由您拥有的机器大小决定,即您可以将最大值设置为机器内存的80%

足够容纳你的一根绳子。没有简单的答案。这取决于PDF的大小和复杂性。
    // Build a string for PDF box...
    $mergepdf = "java -jar pdfbox-app-1.8.9.jar PDFMerger ";

    foreach ($drawings as $key => $id){
        $mergepdf .= $path.$userid."-".$key.".pdf ";
    }

    $mergepdf .= $path.$pdffilename;

    // Make the compiled pdf
    exec($mergepdf);