加快jasperreports

时间:2010-07-20 12:30:00

标签: java caching jasper-reports performance

当我尝试连续生成相同报告的四倍时,我只是简介了我的报告应用程序。第一个花了1859毫秒,而下面的花了400到600毫秒。 对此有何解释?我可以以某种方式使用它来使我的应用程序更快? 报告模块在服务器上运行,并等待用户单击“打印报告”..

1 个答案:

答案 0 :(得分:3)

报告的后续运行扩展了内存并填充了各种缓存。

从未见过您的应用,我的猜测最大的影响是您的数据库服务器缓存您查询的数据。它将数据从磁盘加载到内存中,并且与该内存没有任何关系,它将它留在那里。下次查询出现时,数据库不必转到磁盘上查找数据,它仍然存在于内存中。

利用这一点的明显和最简单的方法是在用户放松系统之前运行一个“假”查询;这意味着你吸收了1800毫秒的等待,你的用户得到了甜蜜400.不幸的是,这只有在所有查询都相同的情况下才有效,即如果每个人都请求相同的报告。如果存在不同的报告和不同的数据,则将针对不同的数据刷新缓存,并且加载新结果将花费更多时间。

简而言之:如果你总是有相同的查询,你可以给出非常快速的答案,但那时你永远不会呈现任何新的东西。