论文部分内容阅读
摘 要 隨着J2EE的空前发展,基于J2EE体系结构的企业应用系统得到了广泛的应用。但是,由于J2EE的分布式结构及分层的体系结构的特点,使得业界对J2EE应用的性能问题的担忧提到了议事日程,如何对J2EE应用系统的性能调优也越来越引起企业的重视。本文以下部分具体论述基于J2EE应用的基本框架和技术要点,并根据经验总结了J2EE组件的性能优化的手段,希望能够对类似的应用和问题的解决起到参考和帮助的作用。
关 键 词 J2EE;性能优化;策略
中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)032-052-03
1 J2EE框架概述
J2EE是一种利用Java平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,其不仅巩固了JAVA标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的连接API、中间件技术以及能够在互联网应用中保护数据的安全模式等等,同时还提供了对JAVA应用组件以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
2 J2EE结构的性能影响因素
一般情况下,最终用户对J2EE应用性能的体验与下面层次是紧密相关的。
根据上述J2EE的层次模型可以看出,J2EE的性能影响不仅包括底层硬件及平台操作系统的性能因素的影响,同时经验也不断地表明,性能下降的普遍原因是由组成框架应用的应用组件的设计问题和不佳的实现造成的。
3 性能优化的原则
根据经验,通常对系统进行性能优化时可以参考以下原则。1)针对时间比例最大的进行优化,效果才最明显。
2)在性能优化的过程中,一般是先平台、再数据库,最后程序,因为数据库及应用平台的优化不需要修改程序,修改的风险很小。
3)确定数据库的问题,需要进行分析判断,分析原则是先索引,后存储过程,最后表结构视图的优化。索引的优化是最简单也是通常最有效的方法,如果合理的使用会带来意想不到的效果。同时针对用户使用频度最高的数据库语句进行优化也是最行之有效的方法。
4)数据库优化的潜能挖光后,如果还是达不到性能要求或是还有问题,则要从程序来进行优化。
4 J2EE性能优化策略
针对J2EE应用调优的策略即包括主机操作系统的底层优化,也包括针对具体应用组件及应用平台的优化,由于针对主机操作系统的优化已经有了成熟的方法和策略,所以在此不予讨论。本文以下所介绍的优化策略主要针对应用平台、应用组件及数据库平台及语句的优化策略。
4.1 应用平台的优化策略
4.1.1 修改执行线程数
应用服务器分配给应用程序的执行线程数量严重地影响其内部操作和应用程序。分配的线程越多,在服务器中同时发生的动作就越多。在测试过程中,查看一个等待请求队列是否增大和CPU是否全额利用,即当CPU时间对服务器都有效,而所有线程都潜在地阻塞,不能服务一个新请求,可以通过提升执行线程数来提高服务器的性能。
4.1.2 执行后备属性
应用服务器在队列中的所有执行线程忙碌时,允许一定数量的连接放到连接后备中。当监控发现有许多被拒绝的连接时,可以通过在服务器调优页面的控制台修改后备属性,来增加数量一缓解执行压力。
4.1.3 JDBC连接池调优
正确配置JDBC连接池可以增加应用程序性能。把数据库连接池设置的太小可能会严重降低应用程序性能。在大多数应用程序中,一个池中最大连接的理想数等于同时使用应用程序的用户数,假设所有用户同时访问数据库导致池连接达到了最大连接数,那么当新的连接请求到达时则需要进入等待状态。相反,如果数据库连接池设置的太高,也能引起性能问题。创建的每个数据库的连接都需要付出内存的代价。所以,JDBC连接池的数量设置需要与数据库管理员一起结合生产环境考虑设置。
4.1.4 EJB池的调优
像使用JDBC连接池一样,应用服务器通过池化一些类型的EJB来节省分配请求的资源。如果设置的池太小将降低应用程序性能,也可以将这些池的初始大小设置得很高,在服务器启动时,就创建一定数目的池,增加内存的使用但潜在地提高了性能。
4.2 JVM优化策略
Java虚拟机对于提高服务器性能是高可调的。以下讨论在使用Weblogic应用服务器的一些调优JVM的常用选项,通过对这些选项的有效设置,以改善运行应用服务器的情况。
4.2.1 堆栈大小
在生产环境中启动应用服务器的重要步骤之一是设置内存堆栈的最大和最小尺寸。设置最大和最小相等是好的常用设置,这能确保JVM在调整堆栈大小上不浪费资源。调整这个堆栈大小会严重影响服务器性能,如设置较大可能会遇到性能的降级,如果分配了太多的内存,会引起垃圾收集过慢。
4.2.2 垃圾收集
JVM使用新一代的垃圾收集算法。它不是为所有非关联对象扫描整个堆栈,而是跟踪对象的时间将使用这一信息增加它的有效性。可能通过使用更多的选项设置这个堆栈来查看性能的提高。通过选项设置堆栈部分的大小,这个堆栈保存相对新的对象。这些对象是最频繁的垃圾收集。Weblogic推荐设置这些大小约为整个堆栈大小的四分之一。如果应用程序要分配大量对象只在随后不久间接引用它们,可能想把这个数目调优大一些。
4.3 J2EE应用的优化策略
4.3.1 调优JDBC模块
不仅正确设置应用服务器连接池和数据源,而且必须确保应用程序智能使用上述资源。在检查应用程序代码时,提供以下一些简单的JDBC调优的考虑。
1)结果集并发和方向。当进行正常的只向前和只读处理时,确保使用最有效的结果集并发和方向模式。当语句被初始化返回向前移动和只读结果时,一般更有效。 2)预编译语句。在任何可能的情况下,包括在执行数据库操作的会话组件中,使用JDBC预编译语句一样的优化方法。
3)对象缓存。在服务器的内存中缓存信息可以避免不必要的数据库访问故障。经常见的情况是,这些内存在应用程序启动时被装载,而且是JNDI注册的可串行化的对象。例如,一个应用程序可能在内存中通过唯一产品标识符保存整个产品目录。这样可以选择是进行数据库查询还是根据需要装载产品信息。
对于不同的数据库类型和配置,在其最终产品中有可能进行更复杂的缓存来提高查询的性能,同时对于JDBC的数据库结果集的解析也需放到Java对象中。由于上述原因,经常在内存中保留一些常用的对象以提供性能。
4.3.2 EJB的优化
1)在开发EJB组件时,尽量不通过远程调用进行远程访问,而定义本地接口,以提供访问性能。
2)由于应用服务器提供了不同的管理模式,使用无状态会话实体在性能上将优化于有状态会话实体。
3)使用值对象处理实体EJB。每一个方法调用都可能时一个远程方法调用,也可能引起数据库故障。通过传递一个表示所有值的可串行化对象可以一次完成所有的功能。
4.4 数据库的优化策略
目前市场上常用的主流数据库系统,都根据系统的自身特点提供了详细的优化策略,本文针对数据库的优化策略总结如下:
4.4.1 应用自由结构优化表空间
逻辑结构对数据库性能的影响至关重要,为此,甲骨文公司提出了一种优化结构应用于表空间设计。通过这种结构的应用进行设计会使物理结构设计中的数据管理得到进一步的简化。简单地讲,优化自由结构就是可以对数据库中的逻辑数据对象进行自由、高效、灵活地分布。为使自由结构的应用能够达到效果,首先要根据逻辑对象的物理结构和使用方式对数据库的影响而进行分类,分类的方法有:分离系统数据和用户数据、索引数据和一般数据分离、将低活动表和高活动表分开等。
4.4.2 优化全局区域提升系统性能
目前,主流数据库都提供系统全局区域(SGA)。系统全局区是数据库的核心组成部分,是一种共享内存结构,在实例启动时分配。用户发送事务请求时,首先以该区域作为高速缓存读取命中数据,以实现提高速度的目的。合理设置SGA的参数对数据库的性能至关重要。
SGA主要包括数据库缓冲区、数据字典缓冲区、重做日志缓冲区和共享池。优化SGA就是调整上述数据库组件的参数,以提高系统的运行效率。对上述内存缓冲区进行合理设置基本原则是:①理论上SGA可占操作系统物理内存的1/2~1/3;②将SGA锁定物理内存,以提高访问命中率;③使用SGA的自動管理功能可以使服务器和业务性能自动协调一致;④尽量将程序常驻共享内存,以减少磁盘读写。
4.4.3 对数据库的设计进行优化
合理的数据设计是提高数据库效率的前提。通过对主流数据库应用的分析并结合根据多年工作经验的积累,在数据库设计中遵循以下原则可以降低影响效率的不利因素:①建议对数据应当按频繁访问的数据和频繁修改的数据两种类别进行组织,根据访问的频繁程度对相关表进行分割处理、存储冗余数据、存储衍生列、合并相关表处理;②对数据库对象采取均匀放置策略,通过均匀地把数据分布在系统的磁盘中,以平衡磁盘访问,避免磁盘瓶颈瓶颈;③数据库的设计需要根据实际进行适当的规范化。规范与反规范合理地结合在一起,可以优势互补,充分发挥各自的优势。
4.4.4 优化数据库管理
1)充分利用数据库分区技术。分区技术是针对超大型表的处理技术。通过将大数据库对象分割成可以管理的小物理段,并分别制定保存在处于不同磁盘上的数据文件里,减少了进行管理操作所需要的时间。同时,由于提升了操作管理的并行性而提高了处理的性能。合理的使用分区技术,可以在性能、高可用性和可管理性之间进行平衡。
2)消除行链接和行迁移的不良影响。在数据库表建立时,对于参数pctfree和pctused不合理设置,会导致数据块中出现行链接和行迁移,也就是同一行的数据不能保存在同一个数据块中。数据库进行数据查询时遇到行迁移或行链接数据,将导致多次的磁盘读写操作,降低数据库的I/O性能。因此,在数据库管理中,应充分考虑未来的发展,合适的设置上述两个参数,以便在每个数据块保留足够的空间,以缓解数据库行迁移/行链接现象出现的概率。另外,当行迁移现象比较严重时,可以通过对表数据进行重组解决问题。
3)尽量减少碎片的产生。当数据文件中的物理顺序与数据库的逻辑顺序不匹配时,碎片随之产生。当执行数据库的功能时,碎片的存在将导致磁头必须前后移动查找索引,降低磁盘工作效率,同时碎片的存在也将浪费大量的磁盘空间资源。
数据库的碎片主要分为三种,分别为表空间碎片、表碎片和表索引碎片。在创建表、创建索引、创建表空间时,合理设置storage子句中的参数,可以一定程度的减少碎片的产生的概率。另外,对于表空间碎片和表索引碎片可以通过将数据进行重新装载而达到清理的目的。
4)回滚段的合理应用。回滚段用于对数据库修改时,存放恢复信息,以便稍后进行恢复时可将原信息读出;另外,回滚段的应用可以为数据库中的所有进程提供读一致性,因此,回滚段设置的合理与否,直接影响到数据库的性能。
另外,相对于数据库索引段、数据段相对静止的特点,回滚段表空间在数据应用中具有较高负荷,因此,可以通过将回滚段设置为交替引用,可以达到循环分配事务对应的回滚段,使磁盘访问负荷均匀分布。
4.4.5 优化数据库应用
1)用索引提高效率。索引是数据库中重要的数据结构,合理的应用索引可以提高数据库查询的效率。在事务性应用中一张表的索引不要太多。数据重复量大的列不要建立二叉树索引,可以采用位图索引;组合索引的列顺序尽量与查询条件列顺序保持一致;对于数据操作频繁的表,索引需要定期重建,以减少失效的索引和碎片。
2)查询的优化应用。查询尽量用确定的列名,少用通配符。尽量少嵌套子查询,这种查询会消耗大量的CPU资源;对于有比较多或运算的查询,建议分成多个查询,用内联联结起来;多表查询的查询语句中,选择最有效率的表名顺序。数据库解析器对表解析从右到左,所以记录少的表放在右边。
3)使用连接池优化应用性能。在数据库应用处理中,创建数据库连接通常需要消耗较大的资源,等待时间也长。采用数据库连接池机制,即每次连接时复用现有的连接,可以提升数据库访问性能。
4)使用表的别名。当在SQL语句中连接多个表时,使用表的别名并把别名前缀于每个列上,就可以减少解析的时间并减少那些由列歧义引起的语法错误。
5 结束语
本文通过对J2EE框架的性能问题分析,总结了针对J2EE应用的从主机资源、应用平台到具体应用代码的多层面的性能优化策略,为基于J2EE框架的开发提供了参考。
参考文献
[1]Peter Zadrozny,Philip Aston.J2EE Performance Testing With BEA Weblogic Server.Publishing House of Electronics Industry,2003.
[2]Roger S.Pressman.Software Engineering A Practice’s Approach Fourth Edition.机械工业出版社,2000.
关 键 词 J2EE;性能优化;策略
中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)032-052-03
1 J2EE框架概述
J2EE是一种利用Java平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构,其不仅巩固了JAVA标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的连接API、中间件技术以及能够在互联网应用中保护数据的安全模式等等,同时还提供了对JAVA应用组件以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
2 J2EE结构的性能影响因素
一般情况下,最终用户对J2EE应用性能的体验与下面层次是紧密相关的。
根据上述J2EE的层次模型可以看出,J2EE的性能影响不仅包括底层硬件及平台操作系统的性能因素的影响,同时经验也不断地表明,性能下降的普遍原因是由组成框架应用的应用组件的设计问题和不佳的实现造成的。
3 性能优化的原则
根据经验,通常对系统进行性能优化时可以参考以下原则。1)针对时间比例最大的进行优化,效果才最明显。
2)在性能优化的过程中,一般是先平台、再数据库,最后程序,因为数据库及应用平台的优化不需要修改程序,修改的风险很小。
3)确定数据库的问题,需要进行分析判断,分析原则是先索引,后存储过程,最后表结构视图的优化。索引的优化是最简单也是通常最有效的方法,如果合理的使用会带来意想不到的效果。同时针对用户使用频度最高的数据库语句进行优化也是最行之有效的方法。
4)数据库优化的潜能挖光后,如果还是达不到性能要求或是还有问题,则要从程序来进行优化。
4 J2EE性能优化策略
针对J2EE应用调优的策略即包括主机操作系统的底层优化,也包括针对具体应用组件及应用平台的优化,由于针对主机操作系统的优化已经有了成熟的方法和策略,所以在此不予讨论。本文以下所介绍的优化策略主要针对应用平台、应用组件及数据库平台及语句的优化策略。
4.1 应用平台的优化策略
4.1.1 修改执行线程数
应用服务器分配给应用程序的执行线程数量严重地影响其内部操作和应用程序。分配的线程越多,在服务器中同时发生的动作就越多。在测试过程中,查看一个等待请求队列是否增大和CPU是否全额利用,即当CPU时间对服务器都有效,而所有线程都潜在地阻塞,不能服务一个新请求,可以通过提升执行线程数来提高服务器的性能。
4.1.2 执行后备属性
应用服务器在队列中的所有执行线程忙碌时,允许一定数量的连接放到连接后备中。当监控发现有许多被拒绝的连接时,可以通过在服务器调优页面的控制台修改后备属性,来增加数量一缓解执行压力。
4.1.3 JDBC连接池调优
正确配置JDBC连接池可以增加应用程序性能。把数据库连接池设置的太小可能会严重降低应用程序性能。在大多数应用程序中,一个池中最大连接的理想数等于同时使用应用程序的用户数,假设所有用户同时访问数据库导致池连接达到了最大连接数,那么当新的连接请求到达时则需要进入等待状态。相反,如果数据库连接池设置的太高,也能引起性能问题。创建的每个数据库的连接都需要付出内存的代价。所以,JDBC连接池的数量设置需要与数据库管理员一起结合生产环境考虑设置。
4.1.4 EJB池的调优
像使用JDBC连接池一样,应用服务器通过池化一些类型的EJB来节省分配请求的资源。如果设置的池太小将降低应用程序性能,也可以将这些池的初始大小设置得很高,在服务器启动时,就创建一定数目的池,增加内存的使用但潜在地提高了性能。
4.2 JVM优化策略
Java虚拟机对于提高服务器性能是高可调的。以下讨论在使用Weblogic应用服务器的一些调优JVM的常用选项,通过对这些选项的有效设置,以改善运行应用服务器的情况。
4.2.1 堆栈大小
在生产环境中启动应用服务器的重要步骤之一是设置内存堆栈的最大和最小尺寸。设置最大和最小相等是好的常用设置,这能确保JVM在调整堆栈大小上不浪费资源。调整这个堆栈大小会严重影响服务器性能,如设置较大可能会遇到性能的降级,如果分配了太多的内存,会引起垃圾收集过慢。
4.2.2 垃圾收集
JVM使用新一代的垃圾收集算法。它不是为所有非关联对象扫描整个堆栈,而是跟踪对象的时间将使用这一信息增加它的有效性。可能通过使用更多的选项设置这个堆栈来查看性能的提高。通过选项设置堆栈部分的大小,这个堆栈保存相对新的对象。这些对象是最频繁的垃圾收集。Weblogic推荐设置这些大小约为整个堆栈大小的四分之一。如果应用程序要分配大量对象只在随后不久间接引用它们,可能想把这个数目调优大一些。
4.3 J2EE应用的优化策略
4.3.1 调优JDBC模块
不仅正确设置应用服务器连接池和数据源,而且必须确保应用程序智能使用上述资源。在检查应用程序代码时,提供以下一些简单的JDBC调优的考虑。
1)结果集并发和方向。当进行正常的只向前和只读处理时,确保使用最有效的结果集并发和方向模式。当语句被初始化返回向前移动和只读结果时,一般更有效。 2)预编译语句。在任何可能的情况下,包括在执行数据库操作的会话组件中,使用JDBC预编译语句一样的优化方法。
3)对象缓存。在服务器的内存中缓存信息可以避免不必要的数据库访问故障。经常见的情况是,这些内存在应用程序启动时被装载,而且是JNDI注册的可串行化的对象。例如,一个应用程序可能在内存中通过唯一产品标识符保存整个产品目录。这样可以选择是进行数据库查询还是根据需要装载产品信息。
对于不同的数据库类型和配置,在其最终产品中有可能进行更复杂的缓存来提高查询的性能,同时对于JDBC的数据库结果集的解析也需放到Java对象中。由于上述原因,经常在内存中保留一些常用的对象以提供性能。
4.3.2 EJB的优化
1)在开发EJB组件时,尽量不通过远程调用进行远程访问,而定义本地接口,以提供访问性能。
2)由于应用服务器提供了不同的管理模式,使用无状态会话实体在性能上将优化于有状态会话实体。
3)使用值对象处理实体EJB。每一个方法调用都可能时一个远程方法调用,也可能引起数据库故障。通过传递一个表示所有值的可串行化对象可以一次完成所有的功能。
4.4 数据库的优化策略
目前市场上常用的主流数据库系统,都根据系统的自身特点提供了详细的优化策略,本文针对数据库的优化策略总结如下:
4.4.1 应用自由结构优化表空间
逻辑结构对数据库性能的影响至关重要,为此,甲骨文公司提出了一种优化结构应用于表空间设计。通过这种结构的应用进行设计会使物理结构设计中的数据管理得到进一步的简化。简单地讲,优化自由结构就是可以对数据库中的逻辑数据对象进行自由、高效、灵活地分布。为使自由结构的应用能够达到效果,首先要根据逻辑对象的物理结构和使用方式对数据库的影响而进行分类,分类的方法有:分离系统数据和用户数据、索引数据和一般数据分离、将低活动表和高活动表分开等。
4.4.2 优化全局区域提升系统性能
目前,主流数据库都提供系统全局区域(SGA)。系统全局区是数据库的核心组成部分,是一种共享内存结构,在实例启动时分配。用户发送事务请求时,首先以该区域作为高速缓存读取命中数据,以实现提高速度的目的。合理设置SGA的参数对数据库的性能至关重要。
SGA主要包括数据库缓冲区、数据字典缓冲区、重做日志缓冲区和共享池。优化SGA就是调整上述数据库组件的参数,以提高系统的运行效率。对上述内存缓冲区进行合理设置基本原则是:①理论上SGA可占操作系统物理内存的1/2~1/3;②将SGA锁定物理内存,以提高访问命中率;③使用SGA的自動管理功能可以使服务器和业务性能自动协调一致;④尽量将程序常驻共享内存,以减少磁盘读写。
4.4.3 对数据库的设计进行优化
合理的数据设计是提高数据库效率的前提。通过对主流数据库应用的分析并结合根据多年工作经验的积累,在数据库设计中遵循以下原则可以降低影响效率的不利因素:①建议对数据应当按频繁访问的数据和频繁修改的数据两种类别进行组织,根据访问的频繁程度对相关表进行分割处理、存储冗余数据、存储衍生列、合并相关表处理;②对数据库对象采取均匀放置策略,通过均匀地把数据分布在系统的磁盘中,以平衡磁盘访问,避免磁盘瓶颈瓶颈;③数据库的设计需要根据实际进行适当的规范化。规范与反规范合理地结合在一起,可以优势互补,充分发挥各自的优势。
4.4.4 优化数据库管理
1)充分利用数据库分区技术。分区技术是针对超大型表的处理技术。通过将大数据库对象分割成可以管理的小物理段,并分别制定保存在处于不同磁盘上的数据文件里,减少了进行管理操作所需要的时间。同时,由于提升了操作管理的并行性而提高了处理的性能。合理的使用分区技术,可以在性能、高可用性和可管理性之间进行平衡。
2)消除行链接和行迁移的不良影响。在数据库表建立时,对于参数pctfree和pctused不合理设置,会导致数据块中出现行链接和行迁移,也就是同一行的数据不能保存在同一个数据块中。数据库进行数据查询时遇到行迁移或行链接数据,将导致多次的磁盘读写操作,降低数据库的I/O性能。因此,在数据库管理中,应充分考虑未来的发展,合适的设置上述两个参数,以便在每个数据块保留足够的空间,以缓解数据库行迁移/行链接现象出现的概率。另外,当行迁移现象比较严重时,可以通过对表数据进行重组解决问题。
3)尽量减少碎片的产生。当数据文件中的物理顺序与数据库的逻辑顺序不匹配时,碎片随之产生。当执行数据库的功能时,碎片的存在将导致磁头必须前后移动查找索引,降低磁盘工作效率,同时碎片的存在也将浪费大量的磁盘空间资源。
数据库的碎片主要分为三种,分别为表空间碎片、表碎片和表索引碎片。在创建表、创建索引、创建表空间时,合理设置storage子句中的参数,可以一定程度的减少碎片的产生的概率。另外,对于表空间碎片和表索引碎片可以通过将数据进行重新装载而达到清理的目的。
4)回滚段的合理应用。回滚段用于对数据库修改时,存放恢复信息,以便稍后进行恢复时可将原信息读出;另外,回滚段的应用可以为数据库中的所有进程提供读一致性,因此,回滚段设置的合理与否,直接影响到数据库的性能。
另外,相对于数据库索引段、数据段相对静止的特点,回滚段表空间在数据应用中具有较高负荷,因此,可以通过将回滚段设置为交替引用,可以达到循环分配事务对应的回滚段,使磁盘访问负荷均匀分布。
4.4.5 优化数据库应用
1)用索引提高效率。索引是数据库中重要的数据结构,合理的应用索引可以提高数据库查询的效率。在事务性应用中一张表的索引不要太多。数据重复量大的列不要建立二叉树索引,可以采用位图索引;组合索引的列顺序尽量与查询条件列顺序保持一致;对于数据操作频繁的表,索引需要定期重建,以减少失效的索引和碎片。
2)查询的优化应用。查询尽量用确定的列名,少用通配符。尽量少嵌套子查询,这种查询会消耗大量的CPU资源;对于有比较多或运算的查询,建议分成多个查询,用内联联结起来;多表查询的查询语句中,选择最有效率的表名顺序。数据库解析器对表解析从右到左,所以记录少的表放在右边。
3)使用连接池优化应用性能。在数据库应用处理中,创建数据库连接通常需要消耗较大的资源,等待时间也长。采用数据库连接池机制,即每次连接时复用现有的连接,可以提升数据库访问性能。
4)使用表的别名。当在SQL语句中连接多个表时,使用表的别名并把别名前缀于每个列上,就可以减少解析的时间并减少那些由列歧义引起的语法错误。
5 结束语
本文通过对J2EE框架的性能问题分析,总结了针对J2EE应用的从主机资源、应用平台到具体应用代码的多层面的性能优化策略,为基于J2EE框架的开发提供了参考。
参考文献
[1]Peter Zadrozny,Philip Aston.J2EE Performance Testing With BEA Weblogic Server.Publishing House of Electronics Industry,2003.
[2]Roger S.Pressman.Software Engineering A Practice’s Approach Fourth Edition.机械工业出版社,2000.