我在java中使用jasper报告(xmx = 4096m)。我使用JRGzipVirtualizer
从PGSQL数据库创建了一个包含200,000行的大型报告。在内存中,虚拟器占用大约700MB空间。通过ObjectOutputStream
将JasperPrint
对象存储在文件中。它创建了一个2.9GB的文件。
当我尝试通过ObjectInputStream
阅读时,它会抛出OutOfMemoryError
。
我的猜测是gzipvirtualizer正在压缩数据,因此它可以驻留在内存中。但是当存储在文件中时,它不会被压缩。因此,在阅读时,它会尝试读取大量未压缩的数据。
我可以以某种方式让它写出压缩的东西或者解决它。
答案 0 :(得分:1)