跳转到主要内容

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

所有提交的信息确保安全。

  • 关闭 [x]

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

所有提交的信息确保安全。

  • 关闭 [x]

Rational Application Developer 性能调优方法概述

姚 炳雄 (yaobx@cn.ibm.com), 资深客户技术专家, IBM
姚炳雄
姚炳雄,IBM 中国有限公司软件部 Rational 资深客户技术专家。在 Rational 工作期间,曾经为中国银行、中国农业、中国移动等多家客户提供过软件工程技术咨询服务。在软件工程技术方面,有着多年的实践经验,对于 Rational 的软件工程技术有着深刻的理解。您可以通过 developerWorks 社区与姚炳雄进行交流。

简介: 在众多的 Rational Application Developer(简称 RAD)用户中,常常碰到性能问题,但从最近接触到的几家客户发现,大家对正确使用 RAD 存在误区,因为 RAD 的庞大,功能特性非常多,导致如果不能正确使用,或者不能很好地掌握一些优化技巧,会给使用 RAD 带来巨大的困扰。本文总结了一些使用心得,供大家参考。

发布日期: 2012 年 1 月 31 日
级别: 初级
访问情况 : 946 次浏览
评论: 


下载 IBM® Rational® Application Developer 试用版  |  在线试用 IBM® Rational® Application Developer
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

概述

IBM Rational Application Developer(简称 RAD)是 IBM 提供的一款全面集成的软件开发环境,全面支持 Java EE 编程,包括 Web、Java、Web 服务和 EJB 开发,从而加速应用程序的开发。Application Developer 拥有开发人员高效工作所需的一切特性,包括集成的 Portal 开发、UML 可视编辑、代码分析、以及自动化测试和部署工具,同时确保代码具有良好的设计、可伸缩性,为产品开发做好准备工作。内置的版本控制和团队协作工具确保复杂项目或大型团队的开发人员能够协调版本化,并且保护团队资产。

作为第一款基于 Eclipse 的商业 IDE 工具,RAD 前身为 WSAD(Webpshere Studio Application Developer),后来并入到 Rational 品牌下,改名为 Rational Application Developer。一直以来,它被业界公认为最强大的 IDE 工具,但同时,性能的问题也一直困扰着它,使得程序员对它既恨又爱。笔者有多个大客户都在整个企业级部署了 RAD,从 RAD5、RAD6 一直到现在的 RAD7,当然目前最新的 RAD8 也已经与 2011 年正式发布。在日常的咨询过程中,得到的反馈是,随着版本的升级,性能越来越慢,对机器的资源的要求越来越大。因此在去年,我们针对几个大客户发起了一次调优的巡访。在巡访过程中,我们发现了大量不当的使用模式,因此将我们在其间总结的一些调优技巧发布出来,供大家参考。以下所有的 RAD 调优技巧都是基于 RAD7.5.5 及以上版本,当然也适合于 RAD8 以上版本。

总的来说,性能问题需要从硬件、软件两方面找原因;首先是机器需要具备基础的硬件资源。大凡 IDE 工具,都是计算密集型应用,RAD 也不例外。因此,CPU 的计算能力是其关键资源,我们建议,原则上 CPU 不应该使用单核 2.0G hz 以下的机器,否则,所有的调优措施都不能解决根本问题。硬盘 I/O 也是一个关键资源,RAD 在启动及初次装载时需要大量读写硬盘,因此,经常对磁盘进行碎片整理也能提升不少性能,在后续我们将详细介绍。其他方面则是软件的应用技巧,因为 RAD 特性非常多、关联关系非常复杂,因此,从应用本身也有非常大的优化空间,下面就让我们一点一点的来看吧。


调优方法

保持 Rational Application Developer 在最新的版本

Rational Application Developer 的新版本中会提供对之前版本的补丁,其中包含对已知问题的修复也会涉及到性能方面的改进。因此对于还没有升级的用户,建议进行升级。在升级 RAD 的同时,也需要对 WebSphere Testing Environment 进行升级

[ 具体操作 ]

请您使用 IBM installation manager 对 RAD 进行升级,使用 Websphere Update Install 对 WTE 进行升级。

设置合适的 RAD Java Heap Size

RAD 是一个基于 Eclipse 的 Java 程序,和其他 Java 程序一样,RAD 使用的初始内存和最大内存大小可以在启动是进行设置。由于的项目规模通常比较大,为了达到较好的性能,在 3GB 内存的机器上,建议将初始 heap 设置为 256M,最大设置为 1024M。

[ 具体操作 ]

请在 eclipse.ini(默认在 C:\Program Files\IBM\SDP 路径下)中添加:

-Xms256m
-Xmx1024m

定期整理磁盘

由于开发人员在工作环境中有较多应用并发进行,在物理内存不足的情况下,系统会将使用硬盘上空间做为虚拟内存,因此,磁盘中存在过多碎片也会对性能带来影响。同时,RAD 在使用过程中有较多的文件读写操作,整理过的磁盘对于文件读写速度也会有较大提高。

[ 具体操作 ]

请定期整理系统盘,RAD 安装所在的磁盘以及 Wrokspace 所在的磁盘。由于磁盘整理需要较多时间,我们建议您在工作空闲时间进行。

在安装结束后删除保存的文件

IBM Install Manager 默认在升级后会保存之前版本的文件,如下图所示。这些文件在升级完成之后可以删除,这样会减少安装的磁盘空间。


图 1. 在安装结束后删除保存的文件
图 1. 在安装结束后删除保存的文件

[ 具体操作 ]

打开 IBM Install Manager -> 文件 -> 首选项–> 用于回滚的文件。选择删除保存的文件。

去除 RAD 中不必要的功能

在开发过程中,有可能项目组使用的技术不涉及 JSF、Web Service 等。一些不相关的功能可以卸载以提高 RAD 在启动和运行时的效率。下面的列表显示在某项目组中可以选择的功能:


图 2. 去除 RAD 中不必要的功能
图 2. 去除 RAD 中不必要的功能

[ 具体操作 ]

打开 IBM Install Manager -> 修改 -> 选择要修改的软件包名 -> 选择要修改的语言 -> 去除不必要的功能。对于 WAS 服务器也应该只保留当前使用的版本。

[ 请注意 ]

对于不同的项目组,可能需要针对实际使用的项目内容选择合适功能,在选择某一功能时,IBM Install Manager 会同时显示该功能的具体信息以及相关联的功能,请跟据提示进行选择。

关闭不必要的验证

对代码进行验证是一个对资源消耗比较大的功能,由于 RAD 提供了很多代码验证,默认情况下这些验证在构建 (build) 项目时会自动进行,如果同时自动构建也已经打开,那么在保存变更时会同时涉及到验证和构建两个操作,带来额外性能开销。

[ 具体操作 ]

在 RAD 菜单窗口 -> 首选项 -> 验证 -> 暂挂所有验证器,或在下面列表里取消不必要的验证。当需要验证时,在项目资源管理器中右击项目根节点,选择“验证”,这时 RAD 会启用选择”手动”的验证器对项目文件进行验证。


图 3. 关闭不必要的验证
图 3. 关闭不必要的验证

关闭 IBM 公用迁移 UI

这个插件在工作区启动时扫描所有的资源已确定是否需要进行迁移。因此在工作区内项目都已经导入之后,可以通过禁用 IBM 共用迁移 UI 来提高启动效率。

[ 具体操作 ]

在 RAD 菜单窗口 -> 首选项–> 常规 -> 启动和关闭 -> 取消 IBM 公用迁移 UI。


图 4. 关闭 IBM 公用迁移 UI
图 4. 关闭 IBM 公用迁移 UI

自动刷新和自动构建

自动刷新会查看是否有外部进程改变了工作区内的文件,如果这种情况很少出现可以把自动刷新功能关闭。

通常情况下,自动构建应该在开启状态,如果在保存文件时发现构建时间较长,可以考虑关闭自动构建,在进行一系列的代码修改后然后一次构建所有变更。

[ 具体操作 ]

在 RAD 菜单窗口 -> 首选项 -> 常规 -> 工作空间


图 5. 自动刷新和自动构建
图 5. 自动刷新和自动构建

使用 JSP 编辑器打开 JSP 文件

如果在日常工作中不需要使用页面设计,那么可以用 JSP 编辑器打开 JSP 文件,JSP 编辑相 Page Designer 占用较少的系统资源,有较少的启动时间。

[ 具体操作 ]

在 RAD 菜单窗口 -> 首选项 -> 常规 -> 文件关联–> 设定 JSP 默认打开方式


图 6. 使用 JSP 编辑器打开 JSP 文件
图 6. 使用 JSP 编辑器打开 JSP 文件

Metadata Complete

如果您的项目没有使用 Java EE Annotation,那么在 web.xml 中设定 metadata complete 将避免 Websphere 在发布时对 annotation 进行扫描。

[ 具体操作 ]

打开项目的 web.xml 文件,设置完整元数据为“true”。


图 7. Metadata Complete
图 7. Metadata Complete

[ 请注意 ]

该选项对于 Dynamic Web Module 2.5 或以上版本生效。

使用 Binary Projects

由于项目组开发工作区很大,而在通常情况下开发人员不会对所有项目都进行修改,对于不修改的项目就可以使用 Binary Project 方式。

[ 具体操作 ]

请参考 IBM 技术文档:
在团队环境中使用二进制模块优化 Rational Application Developer

WebSphere 服务器的设定

在开发环境中,Websphere 服务器的设定对性能的影响也很大,建议您使用 Resources in Workspaces; 关闭自动发布,并让服务器运行在测试和开发模式。

[ 具体操作 ]

请参考下图进行设置


图 8. WebSphere 服务器的设定
图 8. WebSphere 服务器的设定

设定 Development Mode 和 Parallel Start

[ 具体操作 ]

打开 WAS 管理控制台,选择 Servers –> Server Types -> WebSphere application servers -> 选择 Server ->


图 9. 设定 Development Mode 和 Parallel Start
图 9. 设定 Development Mode 和 Parallel Start

设置合适的 Webspere Testing Environment Java Heap Size

Webspere Testing Environment (WTE) 的性能也受到 Java Heap Size 的影响,在 3GB 内存的机器上,建议将初始 heap 设置为 256M,最大设置为 1024M。

[ 具体操作 ]

打开 WAS 管理控制台,选择 Servers –> Server Types -> WebSphere application servers -> 选择 Server 名 -> Java and Process Management -> Process Definition -> Java Virtual Machine -> 设置 Heap Size 如下。


图 10. 设置合适的 Webspere Testing Environment Java Heap Size
图 10. 设置合适的 Webspere Testing Environment Java Heap Size

在 Debug 模式下运行 Websphere 服务器

在 Debug 模式下,大多数代码变更通过热部署的方式自动提交到服务器上,如果某些代码变更 ( 如涉及到 Class 级定义的改变 ) 不能热部署到服务器,那么警告信息会自动产生,这时需要通过手工发布您的应用。

[ 具体操作 ]

将 Websphere 通过 Debug 模式启动。

删除不必要的服务器应用

Websphere 默认安装了一些小的应用,这些应用可以删除以提高性能

[ 具体操作 ]

打开 WAS 管理控制台,选择 Applications –> Enterprise Applications ->


图 11. 删除不必要的服务器应用
图 11. 删除不必要的服务器应用

及时安装相关问题的补丁

正对 RAD 或 Websphere 的产品问题,IBM 会在第一时间进行调查后发布补丁,这些补丁通常会在新的版本中集成,在新的版本出现前,请先安装这些补丁以避免类似问题再次发生。

(如针对 Websphere OOME 的问题,IBM 提供了 JDK 的补丁将 WAS JDK 的版本升级到 build pwi3260sr7ifix-20100610_01(SR7+IZ70326+IZ67457),相关的补丁请和 ICBC 系统部进行联系)。

避免使用某些拼音输入法

在对某些项目组的调查过程中,IBM 发现一些拼音输入法可能会导致 RAD 的直接关闭,IBM 查看了在 5 个不同用户环境里的 RAD Java dump 文件,都是由于搜狗拼音输入法使用的动态连接库所造成的,因此请尝试使用其他的输入法以避免问题的发生。


小结

“工欲善其事,必先利器”。RAD 作为一款商业开发工具,具有很多易用的开发特性,是程序员手中的开发利器,但也需要知道如何正确高效地使用它!在经过调优后,在前文提到的基本配置情况下,能达到比较流畅的使用效果,不会有特别卡的场景出现,在某些具体场景下,如编译等环节,甚至能达到前后 10 倍以上的性能差异。希望这些优化小技巧能带给使用者一点帮助,同时也希望更多的朋友能正确使用,高效率的工作。


附录一、正确理解 RAD 的加载机制

RAD 采用即时加载机制,即在第一次打开相关功能时对于的内部插件才会被加载到内存中。这样做的好处是 RAD 不会加载不用的功能以减少内存的占用,但另一方面 RAD 需要一些开销对首次使用的功能进行加载(比方首次打开 JSP 文件,选择右键菜单,首次打开某个视图),通常会花费一些时间(取决于在同时运行其他多种应用(如 Notes、ST、Word、IE、等等),这时请不要急于在 RAD 里进行其他操作,以避免更多的系统开销。

当一些功能长时间没有使用,再次切换回去时,同样的情况也有可能发生。在平时的操作中,操作系统会把在前台的功能和应用加载到物理内存中,而某些功能长时间没有使用的功能会被切换到对应的磁盘虚拟内存上,当调用这些功能时,系统往往需要一些额外的开销重新加载相关代码到内存中,因此会花费一些时间。

如果当前 CPU 占用率较高,那么可能是某个应用正在运行 ( 可以通过 Task Manager 进行查看 ),请等待 RAD 回到正常工作状态。通常 RAD 在恢复正常工作后,再次打开相关应用的相应时间都在 1-2 秒内。


附录二、如何收集 RAD 性能相关的数据

RAD 从 v7.5.5.1 开始提供一系列的性能监控插件,这些插件可以用来自动收集工作区信息,生成系统核心文件,Java 堆栈信息等等。这些信息通过 RAD –> 帮助 -> 性能 -> 生成诊断信息可以得到。


附录图 1. 如何收集 RAD 性能相关的数据
附录图 1. 如何收集 RAD 性能相关的数据

如果您发现 RAD UI 出现没有响应的状况,请打开 UI 监视器,设定响应时间,之后出现没有响应的情况时,RAD 的诊断信息会自动产生,以帮助问题的分析和解决。


附录图 2. 启用 UI 监视
附录图 2. 启用 UI 监视

附录三、为什么选择手工发布而不是自动发布

使用手工发布是 RAD 的最佳实践之一,这是因为在大多数情况下代码的变更无需通过发布就可以部署到 Websphere 服务器上。


参考资料

学习

获得产品和技术

  • 访问 Rational Application Developer for WebSphere Software 产品专题,了解最新的 IBM Rational Application Developer (RAD) 产品文档和产品信息,获得关于 IBM Rational Application Developer (RAD) 与 Java 开发、Web 服务开发的技术文档和参考资源,可以查阅产品概览、产品手册、产品技术支持、试用版下载,以及相关文章、教程、多媒体课堂和产品演示等信息。

  • 下载免费的 IBM Rational Application Developer 试用版

  • 获取免费的 Rational 软件工具包系列,了解最新的 IBM Rational 软件开发工具技术文档和资源。

  • 下载更多免费的 IBM Rational 试用版软件,了解 IBM Rational 软件的最新特性。

  • 获取更多 IBM 试用版软件,并熟练掌握来自 DB2®、Lotus®、Tivoli®,以及 WebSphere® 的开发工具和中间件产品,用这些试用版软件开发您的下一个项目。这些试用版软件可以免费直接从 developerWorks 下载。

讨论

关于作者

姚炳雄

姚炳雄,IBM 中国有限公司软件部 Rational 资深客户技术专家。在 Rational 工作期间,曾经为中国银行、中国农业、中国移动等多家客户提供过软件工程技术咨询服务。在软件工程技术方面,有着多年的实践经验,对于 Rational 的软件工程技术有着深刻的理解。您可以通过 developerWorks 社区与姚炳雄进行交流。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 使用条款

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

(长度在 3 至 31 个字符之间)


单击提交则表示您同意developerWorks 的条款和条件。 使用条款.

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=790561
ArticleTitle=Rational Application Developer 性能调优方法概述
publish-date=01312012

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。