Projects:Jasper Reports Cache/QA
Testing
The test infrastructure has been adapted to test the new cache of compiled reports and to ensure that the reporting engine is still working as expected.
A new test case has been created and included in CI, CompiledReportsCacheTest. In this test we are compiling a core jrxml file two times. It verifies that:
- Having the cache enabled, the second time the compilation result is retrieved from cache.
- Having the cache disabled, the second time the report is compiled again.
Besides, the existing AllJrxmlCompilation automatic test, has been modified to compile all the standard jrxml templates using the standard reporting engine.
Performance
The impact of this new feature has been measured at different performance levels:
- Print Request Performance: the number of milliseconds to generate each report would be reduced, as every report would be compiled just once. To measure this, a request to print the Purchase Order Report has been executed 100 times, both without and with having the cache.
- Concurrency: it is expected to have less blocking at the ClassLoader because of the fact of having less classes loaded due to the less usage of the compiler.
- Memory Usage: at earlier stages of this project, it was considered to use limited cache that expires the entries not accessed in a given amount of time. This has been discarded for the moment taking into account that the size of the cache is acceptable having all the standard reports compiled.
The summary of the performance tests can be found here.