I am a long time user of the JasperReport library - having used it on multiple medium to large sized projects over a 10+ year period. Am currently at 5.6. In one project, we are experiencing serious performace degradation with large reports. Our report generators run on a JBoss EAP 6.2 server under a Quartz-based batch processor. We always invoke Jasper with a bean list. When the bean list gets fairly large (say 20,000 or more), the performance of the Jasper library drops radically. We know the problem is in the Jasper library due to instrumentation-based monitoring we have performed. The problem is not a lack of server memory - the server has 6GB of FREE memory. The problem is not lack of CPU either - the server's idle percent is in the 80 percent range.
When I say the performance drops radically, I mean that clock time per bean list entry increases from about 200MS to over 1000MS - a 500% decrease in performance when the bean list is large. This is with the same report templates. The only difference being the size of the bean list used to produce a report.
Has the JasperReport library development put effort into improving performance for large datasets?