`
aijuans8
  • 浏览: 193540 次
社区版块
存档分类
最新评论

Birt Performance问题与解决

 
阅读更多

今天同事有个Birt的Performance问题需要解决,这个问题是在Birt里嵌入一段我们自己写的代码来调用一些已有的类去取得配置在文件中的数据库信息,这里因为数据库的用户名和密码是加密的,所以不能直接写在rptdesign文件中,而只能通过调用原来已有的类来取得数据库信息。而每次在调用这个类之后,都会导致Birt产生报表特别慢,并且CPU居高不下,而如果不调用这些类,同样的查询条件,同样的数据,同样的数据库都会很快的返回,用时相差25-30倍。
对于这个问题,首先想到的是由于birt是嵌入的JavaScript语句在rptdesign文件中,是不是Birt会重复加载我们使用的那些类?于是我们在那些类中加了一个静态域,并且加了一些log在静态域和构造函数中。但是结果是,静态域只被执行了一次,那就是没有重复加载那些类。这个想法不对。
然后想到由于每次都会特别消耗CPU,所以就用了JDK6自带的jvisualvm来profile,于是将环境转换到JDK6上,开始profile CPU信息,结果发现CPU耗时多的地方并不是birt和我们自己的类,而都是一些系统类,仅仅从这些信息看不出有什么特别,因此这个想法也被排除了。
最后,想到了是不是可以dump thread信息在CPU特别忙的时候,于是,我们dump了很多组数据,开始分析thread信息。这是我们发现在CPU特别忙的时候总是有一个线程(就是Tomcat中Birt产生报表的线程)很特别,这里特别是因为只有它有特别长的堆栈信息,一眼就可以看出,并且是和birt已经mozilla的javascript库相关。而且,这些组数据中,虽然最上边的堆栈并不是停留在同一个位置,但是在堆栈中部却都有一个mozilla的javascript的importPackage方法信息。于是找来rptdesign文件,发现在代码中果然有importPackage(Packages.x.y.z);看到这里就想是不是这里的importPackage有问题,于是就把这一句给删除了,然后在底下调用的时候全部使用类的全路径,一试,果然问题没有了。
但是原因却没有搞明白,等以后再慢慢找吧。
总结:感谢老天,我运气太好了,不小心搞定了。

分享到:
评论

相关推荐

    eclipse birt 常见问题及解决方法

    ### Eclipse BIRT 常见问题及解决方法详解 #### 一、在WEB环境下设置公共数据源 在Eclipse BIRT中,为了更好地利用资源,通常会在WEB环境中配置公共的数据源,以方便多个报表共享同一数据。以下是具体的配置步骤:...

    birt常见问题解决方式

    ### BIRT常见问题解决方式 #### 一、批量插入Oracle测试数据 在进行报表开发时,经常需要大量的测试数据来验证报表的正确性和性能。在Oracle数据库中可以通过SQL语句批量生成测试数据。 **示例SQL语句**: ```sql...

    Eclipse Birt源码4.5.0

    同时,源码学习也是提升技能和解决问题的有效途径,对于那些希望贡献到BIRT开源项目的人来说,这是必不可少的步骤。 总之,"Eclipse Birt源码4.5.0"是深入了解BIRT工作机制,进行二次开发和定制的理想资源。通过...

    Birt与MyEclipse的集成及Birt的部署问题

    在本文中,我们将深入探讨BIRT(Business Intelligence and Reporting Tools)与MyEclipse的集成以及BIRT的部署问题。BIRT是一个基于Eclipse的开源报表系统,主要用于Java和J2EE Web应用程序,提供了强大的报表设计...

    birt 套打解决模板

    成功解决birt套打问题,解决思想:自动补充空行 使用脚本实现,比较变态

    Birt 与 Struts2 整合

    BIRT与Struts2的整合虽然带来了一些技术上的挑战,尤其是过滤器冲突的问题,但通过自定义BirtFilter并进行适当的配置,完全可以有效地解决这些问题。这对于那些希望在Struts2应用中集成强大报表功能的开发者来说,...

    birt整合到web项目中遇到的问题及解决

    在本文中,我们将探讨将BIRT整合到Web项目中时可能会遇到的问题及其解决方案,包括BIRT与EXT的集成、MDX语言的使用、参数传递、报表展示以及界面定制等关键点。 1. **将BIRT放到Web项目中** 在Web项目中整合BIRT,...

    birt 与sybase连接

    【BIRT(Business Intelligence and Reporting Tools)与Sybase连接】是指使用BIRT报表工具与Sybase数据库进行数据交互,以创建和展现报表的过程。BIRT是一个开源的Java平台,用于生成丰富的Web和企业报告,而Sybase...

    birt开发过程中遇到的问题及解决方案

    ### BIRT开发过程中遇到的问题及解决方案 在进行BIRT(Business Intelligence and Reporting Tools)的开发过程中,往往会遇到各种各样的技术难题。以下是一些常见问题及其解决方案,旨在帮助开发者更好地理解和...

    使用BIRT报表时的认证问题的解决以及注意事项

    在使用BIRT(Business Intelligence and Reporting Tools)报表系统时,可能会遇到各种认证问题,这些问题通常涉及到用户身份验证、权限管理以及与数据源的连接。本文将深入探讨如何解决BIRT中的认证问题,并提供...

    birt数据集参数与列绑定实现

    在BIRT(Business Intelligence and Reporting Tools)中,数据集参数与列绑定是构建复杂报告的关键技术。本主题将深入探讨如何实现数据集之间的参数传递以及列的绑定,以充分利用BIRT的功能来创建高效的报告。 ...

    Birt与Echarts集成.pdf

    Birt和Echarts都是在IT行业中广泛应用的工具,二者各自有不同的特点和优势。Birt是一个开源的报表工具,主要应用于数据的可视化展示。Echarts则是一个使用JavaScript开发的开源图表库,它的特点在于强大的图表绘制...

    birt与web项目集成

    - **错误处理和日志**:集成过程中,良好的错误处理和日志记录机制必不可少,以便快速定位和解决问题。 - **版本兼容性**:确保BIRT运行时环境与你的Web项目所使用的Java版本和其他库兼容。 综上所述,BIRT与Web...

    birt的安装与使用

    BIRT部署通常涉及将报表运行时环境(如birt-runtime-2_2_2)与Web服务器集成。以Tomcat 5.5为例,需要将必要的库文件(如mail.jar, activation.jar, iTextAsian.jar, itext-1.3.jar)放入Tomcat的common\lib目录,将...

    birt公用CSS样式

    在IT行业中,BIRT(Business Intelligence and Reporting Tools)是一款开源的报表系统,它允许开发者创建丰富的数据可视化和报告。在创建BIRT报表时,CSS(Cascading Style Sheets)样式起到了至关重要的作用,它们...

    Pentaho cde整合Birt

    【标题】:“Pentaho CDE 整合 Birt” 【描述】: ...通过以上介绍,我们可以看出Pentaho CDE与Birt的整合,是将强大的报表设计能力与交互式仪表板相结合,为企业级数据分析和决策支持提供了强大工具。

    BIRT总结 里面有从学到用所遇到问题的解决方案和实例

    本总结主要涵盖了从基础到实践的BIRT报表制作过程,以及在学习过程中遇到的问题及解决方案。 首先,我们来详细探讨如何制作一个简单的BIRT报表: 1. 创建报表工程:通过BIRT的项目向导,你可以创建一个新的BIRT...

    birt2.5汉化包

    在BIRT 2.5版本中,汉化包的引入解决了语言障碍问题,使得中国用户可以更加直观地理解软件的各项功能。这个汉化包通常包括了各种界面元素的翻译,如菜单、对话框、提示信息等,确保用户在操作过程中能够无障碍地阅读...

    birt中文使用说明

    2. BIRT论坛:与其他BIRT用户交流经验,解决遇到的问题。 3. 第三方插件:社区开发了许多扩展插件,增强BIRT的功能。 总结,BIRT作为一个强大的报表工具,提供了一整套从数据连接、报表设计到发布的解决方案。通过...

    birt viewer源代码

    这些组件使得Birt Viewer能够与Web服务器无缝集成,为用户提供Web端的报表查看体验。 2. **Report Engine**:Birt Viewer依赖于Birt Report Engine来解析和执行报表。引擎负责读取报表设计文件(.rptdesign),执行...

Global site tag (gtag.js) - Google Analytics