Jasper使用Virtualizer生成大量报告需要花费太多时间

时间:2017-06-09 22:18:40

标签: java performance jasper-reports

我们正在使用Japser在我们的应用程序中生成报告

我们已经从5.0.1升级到6.4以达到更好的性能,但这是我们在几次测试运行后没有看到好的结果。生成报告大约需要44分钟

这是我们的配置

Jasper版本:6.4

JDK 1.7

服务器:tomcat 7,3GB RAM

记录数:850k

我们从数据库中获取结果并将其交给jasper。

以下是生成报告时的内存消耗和CPU利用率

enter image description here

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但在时间或内存消耗方面没有太大差异

0 个答案:

没有答案