gpt4 book ai didi

java - JasperReport - 占用太多资源

转载 作者:行者123 更新时间:2023-11-29 07:23:20 25 4
gpt4 key购买 nike

所以,问题是当我们在 JasperReport 对话框中向用户显示创建的文档时。用户可以按打印图标并将其发送到打印机。

它似乎在所有三个级别占用了客户端计算机上的太多资源:创建报告、在屏幕上显示报告并将其发送到打印机。一个示例 PC 是 AMD Duron 800MHz 和 256MB RAM,所以我们需要看看我们是否可以做一些优化以获得更好的用户体验。

在配备 2GHz 处理器和 1GB RAM 的“普通”计算机上,它也会占用大量资源,因此我需要查看是否有一个选项可以调整 JasperReport 以减少对资源的依赖。

最佳答案

过度使用子报表会增加报表的资源需求。每个子报表在填充期间生成自己的线程。此外,如果您使用的是 scriptlet 或帮助程序类,请确保它们创建的所有资源都被正确清理。还要确保您使用的是最新的 JR 包。

一张纸条。 JR api 包括一组虚拟器。当报表正在填充时,整个填充的报表被创建为一个对象 (JasperPrint)。根据报告中的页数,此对象可能会变得非常大。虚拟器可以配置为在达到设置的页面阈值时写入文件系统。

通常这会减少整体内存使用但会增加填充时间。一个包含可能是 gzip 虚拟器,它不是写入文件系统,而是使用 gzip 压缩生成的对象。

这是关于该主题的常见问题解答: http://community.jaspersoft.com/wiki/support-large-reports

它引用的例子可以通过下载JR源获得。

http://sourceforge.net/project/showfiles.php?group_id=36382&package_id=28579

从高层次的角度来看,如果您在应用程序中运行此报告,您可以实例化虚拟器(这里是列出已知实现类的接口(interface)): http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRVirtualizer.html

然后在填充时使用引用:

        JRDataSource ds = new JREmptyDataSource(10);
JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp");
JasperPrint jasperPrint = fillReport(fileName, ds, virtualizer);

如果您在 iReport 中,可以在选项 -> 设置中配置虚拟器。

希望对您有所帮助。

卢克

关于java - JasperReport - 占用太多资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/472522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com