Java 从文件导入JasperPrint时发生OutOfMemoryError

Java 从文件导入JasperPrint时发生OutOfMemoryError,java,jasper-reports,out-of-memory,Java,Jasper Reports,Out Of Memory,我正在使用java中的jasper报告(xmx=4096m)。我使用PGSQL数据库创建了一个包含200000行的大型报告。在内存中,虚拟机占用大约700MB的空间。通过ObjectOutputStream将对象存储在文件中。它创建了一个2.9GB的文件 当我试图通过ObjectInputStream读取它时,它抛出一个OutOfMemoryError 我的猜测是gzip虚拟机正在压缩数据,以便它可以驻留在内存中。但当存储在文件中时,它不会被压缩。因此,当读取时,它尝试读取大量未压缩的数据 我可

我正在使用java中的jasper报告(xmx=4096m)。我使用PGSQL数据库创建了一个包含200000行的大型报告。在内存中,虚拟机占用大约700MB的空间。通过
ObjectOutputStream
将对象存储在文件中。它创建了一个2.9GB的文件

当我试图通过
ObjectInputStream
读取它时,它抛出一个
OutOfMemoryError

我的猜测是gzip虚拟机正在压缩数据,以便它可以驻留在内存中。但当存储在文件中时,它不会被压缩。因此,当读取时,它尝试读取大量未压缩的数据


我可以让它写一些压缩的东西,或者以其他方式解决它。

在JasperPrint对象上使用虚拟化程序反序列化可以通过调用来完成。或者通过使用


Ref:

您能粘贴stacktrace吗?它可以帮助确定与错误相关的内存区域。@Lexandro我没有堆栈跟踪。。。。我已经链接了heapdump