<< JVM 内存管理机制构成 及物理内存和虚拟内存 | 首页 | BIRT report viewer IE11 上预览不正常工作 及汉化 >>

How to benchmark BIRT report performance? - Stack Overflow

总结一下,大概有几点:

SQL执行计划,SQL跟踪调优

减少报表需要处理的数据,大量数据分页是不合适的

保持报表简洁,去掉无用的表格、图表

减少使用脚本,和数据源关联的脚本

For anyone else having problems with BIRT performance, here are a few more hints.

  • Profiling a BIRT report can be done using any Java profiler - write a simple Java test that runs your report and then profile that. As an example I use the unit tests from the SpudSoft BIRT Excel Emitters and run JProfiler from within Eclipse. The problem isn't with the difficulty in profiling it, it's in understanding the data produced :)

  • Scripts associated with DataSources can absolutely kill performance. Even a script that looks as though it should only have an impact up-front can really stop this thing. This is the biggest performance killer I've found (so big I rewrote quite a chunk of the Excel Emitters to make it unnecessary).

  • The emitter you use has an impact. If you are trying to narrow down performance problems always do separate Run and Render tasks so you can easily see where to concentrate your efforts.

  • Different emitter options can impact performance, particularly with the third party emitters (the SpudSoft emitters now have a few options for making large reports faster).

  • The difference between Fixed-Layout and Auto-Layout is significant, try both.

As I write this answer the question is getting close to 2 years old, so presumably you found a way around the problem. No one has offered a profiler for the entire process, so here are some ways of identifying bottle necks.

  1. Start up time - About a minute can be spent here

    • running a couple reports one after the other or starting a second after the first is running can help diagnosis issues.
  2. SQL Query run time - Good solutions are mentioned in the question

    • any SQL trace and performance testing will identify issues.
  3. Building the report - This is where I notice the lions share of time being taken. Run a SQL trace while the report is being created. Even a relatively simple tables with lots of data can take around a minute to configure and display (HTML via apache tomcat) after the SQL trace indicates the query is done.

    • simplify the report or create a clone with fewer graphs or tables run with and without pieces to see if any create a notable difference
    • modify the query to bring back less records, less records are easier to display,
  4. Delivery method PDF, Excel, HTML each can have different issues

    • try the report to different formats
    • if one is significantly greater, try different emitters.

 

阅读全文……

标签 : ,



发表评论 发送引用通报