如何衡量BIRT报告的表现?

时间:2011-06-03 12:19:50

标签: performance birt

我有一个BIRT报告,其中包含性能问题:运行大约需要5分钟。

开头我虽然问题是数据库:此报告使用非常复杂的SQL Server存储过程来检索数据。经过大量SQL优化后,此过程现在需要大约20秒才能运行(在管理控制台中)。

然而,报告本身仍然需要太多时间(几分钟)。如何识别BIRT报告生成中的其他瓶颈?有没有办法描述整个过程?我正在使用www viewer(在Tomcat 5.5中运行)运行它,我没有任何Java事件处理程序,所有操作都是使用标准SQL和JavaScript完成的。

我观看了网络研讨会“设计高性能BIRT报告”1,它有一些有趣的考虑,但它没有多大帮助......

3 个答案:

答案 0 :(得分:3)

对于其他任何有BIRT性能问题的人,这里有一些提示。

  • 可以使用任何Java分析器来分析BIRT报告 - 编写一个运行报告的简单Java测试,然后对其进行分析。 作为一个例子,我使用SpudSoft BIRT Excel Emitters中的单元测试并从Eclipse中运行JProfiler。 问题不在于分析它的难度,而在于理解产生的数据:)

  • 与DataSources相关联的脚本绝对会破坏性能。即使是一个看起来好像只能预先产生影响的脚本,也可以真正阻止这件事。这是我发现的最大的性能杀手(如此之大,我重写了相当一部分Excel发射器,使其不必要)。

  • 您使用的发射器会产生影响。 如果您正在尝试缩小性能问题,请始终单独执行“运行”和“渲染”任务,以便您可以轻松查看集中精力的位置。

  • 不同的发射器选项会影响性能,特别是对于第三方发射器(SpudSoft发射器现在有一些选项可以更快地制作大型报告)。

  • 固定布局和自动布局之间的区别很重要,请尝试两者。

答案 1 :(得分:2)

当我写这个答案时,问题已接近2岁,所以大概你找到了解决问题的方法。没有人为整个过程提供了一个分析器,所以这里有一些识别瓶颈的方法。

  1. 启动时间 - 这里可以花一分钟

    • 一个接一个地运行一对报告或在第一个报告运行后开始一秒钟可以帮助诊断问题。
  2. SQL查询运行时 - 问题中提到了好的解决方案

    • 任何SQL跟踪和性能测试都将识别问题。
  3. 构建报告 - 这是我注意到狮子会分享时间的地方。在创建报告时运行SQL跟踪。在SQL跟踪指示查询完成后,即使是包含大量数据的相对简单的表也可能需要大约一分钟来配置和显示(HTML通过apache tomcat)

    • 简化报告或创建一个克隆,使用较少的图形或表运行有和没有片段,以查看是否有任何创建显着差异
    • 修改查询以带回更少的记录,更少的记录更容易显示,
  4. 交付方式PDF,Excel,HTML各有不同的问题

    • 尝试使用不同格式的报告
    • 如果一个明显更大,请尝试不同的发射器。

答案 2 :(得分:0)

您是否检查过您在Tomcat中使用了多少内存?您可能没有分配足够的内存。快速测试是启动BIRT Designer并为其分配额外的内存。然后,在BIRT Designer软件中运行报告。