How to Modify Virtualizer Settings for Very Large Reports

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: