我在代码的以下行收到OOM错误。有办法解决吗?我试图增加堆大小以至无用。

FileInputStream inputDoc = new FileInputStream(inputDoc1);
byte[] bytes = IOUtils.toByteArray(inputDoc);

upl.edmsDocument = bytes;


更新:添加了以下参数-Xms2048m -Xmx2048m -Xincgc,然后Im可以连续上传几个大文件,但是性能不一致。

最佳答案

如果知道输入的大小,则应使用toByteArray(inputDoc1, inputDoc1Size)而不是toByteArray(inputDoc1)。请注意,无论如何,您都会受到Integer.MAX_VALUE条目的限制,如API documentation.中所述

09-03 23:25