dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
WebLogic Portal应用程序的优化开发
如果您想提升开发WebLogic Portal应用程序的速度,那么这篇博客文章就是专门为您打造的。实际上,文中的大多数建议都适用于大中型Java Web应用程序的开发过程,但本文将集中关注WLP。在BEA中,我们已经研究了改进迭代开发绩效的方法。本文将分享其中一些可供您立即应用的发现。
改进开发绩效的五种简单方法
我将解释在改进迭代开发绩效方面最有用的五个技巧。此处的绩效是按重新发布您的应用程序所用时间度量的。这些技巧已针对WebLogic Portal应用程序进行了度量,但任何大中型JEE应用程序开发过程都会获得同样的收益。下面按重要性排序列举了这些收益:
- 使用JRockit作为您的服务器JVM!!!它的速度更快,而且不会因Hotspot之类的PermGen问题而发生故障。
- 将Parallel Garbage Collection与JRockit配合使用——高达40%的提升!
- 仅在需要时启动Autonomy搜索服务,这将节省500MB的RAM。
- 可选择在Web应用程序的范围内开发类。如果您这样做了,那么Workshop将得到很好的优化。
- 避免使您的应用程序塞满不必要的文件。考虑将静态文件迁移到一台Web服务器上。
详述如下。
BEA JRockit是您的益友
这是显而易见的。我们已经发现,对于迭代开发,JRockit要比Hotspot更快、更稳定。创建一个新的域时,总是应该选择JRockit作为服务器的JVM(Hotspot是默认的,所以您需要采取一些措施)。如果您在多次重新发布后遇到内存不足的错误,那么换用JRockit将帮您解决这些问题。注意:Workshop IDE是为在Hotspot上运行而配置的,不必加以更改。只需更改服务器JVM即可。
不确定您使用的是什么吗?在启动时观察一下服务器控制台,它会将使用的是Hotspot还是JRockit记入日志。要为一个域配置JRockit,在所生成的域中setDomainEnv.(sh,cmd)脚本内设置JAVA_VENDOR=BEA即可。
JRockit是明智的选择,原因不仅仅在于绩效。Henrik Stahl 在自己的博客中介绍了另外一些特性,它们使JRockit成为开发的理想选择。
并行世界更轻松
另外一件显而易见的事情。您是否希望将重新发布的速度提升40%?JRockit 中垃圾收集的Parallel算法能够很好地完成此类任务。并行会增加暂停次数,但总体上来说它可以 最大化吞吐量。最大化吞吐量正是我们所需要的!
要为服务器配置并行GC,您需要更改setDomainEnv.(sh,cmd)。更改 MEM_ARGS="-Xms256m -Xmx768m" 的代码行,使之成为MEM_ARGS="-Xgc:parallel -Xms256m -Xmx768m".。然后就可以安心休息了。
节约生产中的重大搜索
这是WLP特有的。WLP预先配置为开箱即启动Autonomy搜索引擎。这是跨供您使用的内容存储库的全文本搜索。然而,大多数开发人员并不需要在其环境中进行全文本搜索。Autonomy要占用一定的RAM,因此最好在不需要时禁用它。
您需要编辑DOMAIN_HOME/bin/startWebLogic.cmd/sh。编辑文件以使默认搜索配置文件被设置为"none",方法是更新如下代码行:
if "%CONTENT_SEARCH_OPTION%"=="" (
@REM make the following assignment to none, so it won't start Autonomy
set CONTENT_SEARCH_OPTION=none
这就是我们热爱Workshop的缘由
Workshop是智能化的,因此它将具备智能,并帮助您摆脱繁杂工作。开发一个应用程序时,您最终会在以下三个域中部署工件:
- 系统类路径:出于多方面的原因,请加以避免。
- 应用程序域:EJB和其他任何需要跨多个Web应用程序进行共享的内容均部署在这里。
- Web应用程序域:Web项目中部署的一切内容都属于这个类别。
如果您更改了系统类路径中部署的一个类,那么就需要重启服务器。这绝对不是一个好选择。如果您更改了应用程序中部署的一个类,Workshop将需要重新部署应用程序和所有Web应用程序。这样做的代价高昂。如果您更改了Web应用程序中的某些东西,Workshop通常只需重新部署这个Web应用程序。这是重新发布的最快途径。因此只要可能,就应该尽量选择在一个Web项目中部署您的开发工件。
Workshop还有其他许多帮助您提升速度的特性,访问 此页面 获得更多信息。
将那些100MB的电影放到YouTube上
对于部署,大小无关紧要。在开发过程中,要特别注意避免使您的应用程序塞满可能位于别处的静态文件。应用程序中不可避免地有一定数量的图片、CSS和Javascript,但应考虑使用Content Management或一个Web服务器来托管较大的内容集合。
工作还在继续……
在此,我要特别感谢为我提供上述信息的WLP工程师。(Dave、Bret,感谢你们!)他们一直致力于迭代开发的分析,也依然在寻求使WLP应用程序开发速度更快的方法。此外, Josh Lannin在 这篇博客文章 中介绍了适用于WLP开发人员的更多绩效技巧。. 希望这些技巧能对您的当前项目有所帮助!
原文出处:http://dev2dev.bea.com/blog/plaird/archive/2007/05/optimized_devel.html
作者其它文章
|