Wal*_*ett 3 performance jasper-reports
我们在JasperReports 3.7.0中使用了虚拟程序,以避免一些大型查询耗尽内存。在该主题上找到了一篇有用的文章,并且在《 JasperReports终极指南》中对虚拟器进行了简要描述,但这仅仅是一个开始。我试图找出哪种虚拟机是理想的,并选择了一种虚拟机,如何调整配置参数。任何人都可以在这个话题上提供一些智慧吗?
沃尔特·吉列特
JRFileVirtualizer是原始版本,但主要是概念证明(我在评估JR时编写; JR开发人员也已对其进行了修复)。它为每个虚拟页面创建一个单独的文件,这可能导致拥有大量临时文件。
我建议使用JRSwapFileVirtualizer,因为它只为报告创建一个文件。
JRSwapFileVirtualizer virtualizer = null;
try {
JRSwapFile swapFile = new JRSwapFile("directory", 1024, 100);
virtualizer = new JRSwapFileVirtualizer(50, swapFile, true);
params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
...
JasperPrinter printer = JasperFillManager.fillReport(report, params, dataSource);
...
}
finally {
if (virtualizer != null) virtualizer.cleanup();
}
Run Code Online (Sandbox Code Playgroud)
这将使系统在处理完报表后删除交换文件,并将使用虚拟器保存50页以上的报表。
JRGzipVirtualizer是另一个poc虚拟器,用于没有磁盘访问权限的系统。报告页面对象的压缩效果很好,因此,如果堆内存大小合适,您仍然可以制作一些大型报告。