我在下面的代码行中收到 OOM 错误。有办法解决吗?我尝试增加堆大小但没有用。
FileInputStream inputDoc = new FileInputStream(inputDoc1);
byte[] bytes = IOUtils.toByteArray(inputDoc);
upl.edmsDocument = bytes;
更新:添加了以下参数-Xms2048m -Xmx2048m -Xincgc
然后我能够连续上传几个大文件,但性能不一致。
最佳答案
如果您知道输入的大小,则应该使用 toByteArray(inputDoc1, inputDoc1Size)
而不是 toByteArray(inputDoc1)
。请注意,无论如何,您都受到 Integer.MAX_VALUE 条目的限制,如 API documentation. 中所述。
关于java - IOUtils.toByteArray() 的内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029219/