Modify Virtualizer Settings for Very Large Reports
For larger reports JasperReports Server uses a virtualizer to avoid running out of memory. Specifically it uses the JRFileVirtualizer and it's configured to kick-on after 300 pages. What the virtualizer does is create a separate file for every page of the report over page 300, essentially off-loading the Java memory heap but slowing things down with a trip to the disk.
If you're seeing slow performance from large reports (300+ pages) then it's worth considering tweaking these settings. They can be found in WEB-INF/applicationContext.xml in the fileVirtualizerFactory bean. Increasing maxSize to a very large number effectively disables the virtualizer, speeds up report exports but potentially leaves you vulnerable to out of memory problems.
There are options such as switching to a different virtualizer as well.
Other Performance Tips:
Measure and Test
Ad Hoc
- Set query limits on the "Ad Hoc Options" page
- Modify the Ad Hoc caching values if your data does not update constantly
Tomcat
- Compress HTTP responses at the Tomcat level
- Increase the maximum thread count at the Tomcat level
- Set up a cache filter for Tomcat or JBoss
- Disable automatic deployment on production servers using Tomcat
Database
- Index columns in the database to speed up domain-based reports
- Set the fetch size in the jasperreports.properties file to modify the number of rows to fetch
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now