我们正在使用Japser在我们的应用程序中生成报告
我们已经从5.0.1升级到6.4以达到更好的性能,但这是我们在几次测试运行后没有看到好的结果。生成报告大约需要44分钟
这是我们的配置
Jasper版本:6.4
JDK 1.7
服务器:tomcat 7,3GB RAM
记录数:850k
我们从数据库中获取结果并将其交给jasper。
以下是生成报告时的内存消耗和CPU利用率
JRSwapFile swapFile = new JRSwapFile(System.getProperty("java.io.tmpdir"), 4096, 25);
JRAbstractLRUVirtualizer virtualizer = new JRSwapFileVirtualizer(2, swapFile, true);
virtualizer.setReadOnly(false);
context.getReportParams().put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
寻找有关如何通过降低内存消耗来减少报告生成时间的建议。 是报告应该如何为这个大型数据集执行,或者我们在这里做错了什么?
我们正在使用JRSwapFileVirtualizer。如果未使用虚拟化程序,则生成报告所需的时间会更好,但我们无法生成大型报告。 我们应该使用另一个虚拟器,如Gzip虚拟器或调整File Virtualizer的参数 maxSize,blockSize和minGrowCount参数。
更新: 尝试使用GzipVirtualizer但在时间或内存消耗方面没有太大差异