| 下载 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 是一个基于 Eclipse 的 Java 程序,和其他 Java 程序一样,RAD 使用的初始内存和最大内存大小可以在启动是进行设置。由于的项目规模通常比较大,为了达到较好的性能,在 3GB 内存的机器上,建议将初始 heap 设置为 256M,最大设置为 1024M。
[ 具体操作 ]
请在 eclipse.ini(默认在 C:\Program Files\IBM\SDP 路径下)中添加:
-Xms256m -Xmx1024m |
由于开发人员在工作环境中有较多应用并发进行,在物理内存不足的情况下,系统会将使用硬盘上空间做为虚拟内存,因此,磁盘中存在过多碎片也会对性能带来影响。同时,RAD 在使用过程中有较多的文件读写操作,整理过的磁盘对于文件读写速度也会有较大提高。
[ 具体操作 ]
请定期整理系统盘,RAD 安装所在的磁盘以及 Wrokspace 所在的磁盘。由于磁盘整理需要较多时间,我们建议您在工作空闲时间进行。
IBM Install Manager 默认在升级后会保存之前版本的文件,如下图所示。这些文件在升级完成之后可以删除,这样会减少安装的磁盘空间。
图 1. 在安装结束后删除保存的文件
[ 具体操作 ]
打开 IBM Install Manager -> 文件 -> 首选项–> 用于回滚的文件。选择删除保存的文件。
在开发过程中,有可能项目组使用的技术不涉及 JSF、Web Service 等。一些不相关的功能可以卸载以提高 RAD 在启动和运行时的效率。下面的列表显示在某项目组中可以选择的功能:
图 2. 去除 RAD 中不必要的功能
[ 具体操作 ]
打开 IBM Install Manager -> 修改 -> 选择要修改的软件包名 -> 选择要修改的语言 -> 去除不必要的功能。对于 WAS 服务器也应该只保留当前使用的版本。
[ 请注意 ]
对于不同的项目组,可能需要针对实际使用的项目内容选择合适功能,在选择某一功能时,IBM Install Manager 会同时显示该功能的具体信息以及相关联的功能,请跟据提示进行选择。
对代码进行验证是一个对资源消耗比较大的功能,由于 RAD 提供了很多代码验证,默认情况下这些验证在构建 (build) 项目时会自动进行,如果同时自动构建也已经打开,那么在保存变更时会同时涉及到验证和构建两个操作,带来额外性能开销。
[ 具体操作 ]
在 RAD 菜单窗口 -> 首选项 -> 验证 -> 暂挂所有验证器,或在下面列表里取消不必要的验证。当需要验证时,在项目资源管理器中右击项目根节点,选择“验证”,这时 RAD 会启用选择”手动”的验证器对项目文件进行验证。
图 3. 关闭不必要的验证
这个插件在工作区启动时扫描所有的资源已确定是否需要进行迁移。因此在工作区内项目都已经导入之后,可以通过禁用 IBM 共用迁移 UI 来提高启动效率。
[ 具体操作 ]
在 RAD 菜单窗口 -> 首选项–> 常规 -> 启动和关闭 -> 取消 IBM 公用迁移 UI。
图 4. 关闭 IBM 公用迁移 UI
自动刷新会查看是否有外部进程改变了工作区内的文件,如果这种情况很少出现可以把自动刷新功能关闭。
通常情况下,自动构建应该在开启状态,如果在保存文件时发现构建时间较长,可以考虑关闭自动构建,在进行一系列的代码修改后然后一次构建所有变更。
[ 具体操作 ]
在 RAD 菜单窗口 -> 首选项 -> 常规 -> 工作空间
图 5. 自动刷新和自动构建
如果在日常工作中不需要使用页面设计,那么可以用 JSP 编辑器打开 JSP 文件,JSP 编辑相 Page Designer 占用较少的系统资源,有较少的启动时间。
[ 具体操作 ]
在 RAD 菜单窗口 -> 首选项 -> 常规 -> 文件关联–> 设定 JSP 默认打开方式
图 6. 使用 JSP 编辑器打开 JSP 文件
如果您的项目没有使用 Java EE Annotation,那么在 web.xml 中设定 metadata complete 将避免 Websphere 在发布时对 annotation 进行扫描。
[ 具体操作 ]
打开项目的 web.xml 文件,设置完整元数据为“true”。
图 7. Metadata Complete
[ 请注意 ]
该选项对于 Dynamic Web Module 2.5 或以上版本生效。
使用 Binary Projects
由于项目组开发工作区很大,而在通常情况下开发人员不会对所有项目都进行修改,对于不修改的项目就可以使用 Binary Project 方式。
[ 具体操作 ]
请参考 IBM 技术文档:
“在团队环境中使用二进制模块优化 Rational Application Developer”
在开发环境中,Websphere 服务器的设定对性能的影响也很大,建议您使用 Resources in Workspaces; 关闭自动发布,并让服务器运行在测试和开发模式。
[ 具体操作 ]
请参考下图进行设置
图 8. WebSphere 服务器的设定
设定 Development Mode 和 Parallel Start
[ 具体操作 ]
打开 WAS 管理控制台,选择 Servers –> Server Types -> WebSphere application servers -> 选择 Server ->
图 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
在 Debug 模式下,大多数代码变更通过热部署的方式自动提交到服务器上,如果某些代码变更 ( 如涉及到 Class 级定义的改变 ) 不能热部署到服务器,那么警告信息会自动产生,这时需要通过手工发布您的应用。
[ 具体操作 ]
将 Websphere 通过 Debug 模式启动。
Websphere 默认安装了一些小的应用,这些应用可以删除以提高性能
[ 具体操作 ]
打开 WAS 管理控制台,选择 Applications –> Enterprise Applications ->
图 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 需要一些开销对首次使用的功能进行加载(比方首次打开 JSP 文件,选择右键菜单,首次打开某个视图),通常会花费一些时间(取决于在同时运行其他多种应用(如 Notes、ST、Word、IE、等等),这时请不要急于在 RAD 里进行其他操作,以避免更多的系统开销。
当一些功能长时间没有使用,再次切换回去时,同样的情况也有可能发生。在平时的操作中,操作系统会把在前台的功能和应用加载到物理内存中,而某些功能长时间没有使用的功能会被切换到对应的磁盘虚拟内存上,当调用这些功能时,系统往往需要一些额外的开销重新加载相关代码到内存中,因此会花费一些时间。
如果当前 CPU 占用率较高,那么可能是某个应用正在运行 ( 可以通过 Task Manager 进行查看 ),请等待 RAD 回到正常工作状态。通常 RAD 在恢复正常工作后,再次打开相关应用的相应时间都在 1-2 秒内。
RAD 从 v7.5.5.1 开始提供一系列的性能监控插件,这些插件可以用来自动收集工作区信息,生成系统核心文件,Java 堆栈信息等等。这些信息通过 RAD –> 帮助 -> 性能 -> 生成诊断信息可以得到。
附录图 1. 如何收集 RAD 性能相关的数据
如果您发现 RAD UI 出现没有响应的状况,请打开 UI 监视器,设定响应时间,之后出现没有响应的情况时,RAD 的诊断信息会自动产生,以帮助问题的分析和解决。
附录图 2. 启用 UI 监视
使用手工发布是 RAD 的最佳实践之一,这是因为在大多数情况下代码的变更无需通过发布就可以部署到 Websphere 服务器上。
学习
- 查看文章“在团队环境中使用二进制模块优化 Rational Application Developer”。
- 访问 IBM developerWorks 中国网站 Rational 专区,获得关于 IBM Rational 软件交付平台(Rational Software Delivery Platform)产品的技术资源和最佳实践。
- 订阅 IBM developerWorks 时事通讯,一份关于 developerWorks 指南、文章、下载、社区活动、网络广播和技术讲座的电子周刊。
获得产品和技术
- 访问 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 下载。
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。

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