关闭

java性能优化2

标签: 性能优化javabeanincludeejbjsp
701人阅读 评论(0) 收藏 举报
分类:
对于代码逻辑复杂的页面,利用缓冲标记提高性能的效果比较明显;反之,效果可能略逊一筹。

  请参见《用缓冲技术提高JSP应用的性能和稳定性》。

  2.2 始终通过会话Bean访问实体Bean

  直接访问实体Bean不利于性能。当客户程序远程访问实体Bean时,每一个get方法都是一个远程调用。访问实体Bean的会话Bean是本地的,能够把所有数据组织成一个结构,然后返回它的值。

  用会话Bean封装对实体Bean的访问能够改进事务管理,因为会话Bean只有在到达事务边界时才会提交。每一个对get方法的直接调用产生一个事务,容器将在每一个实体Bean的事务之后执行一个“装入-读取”操作。

  一些时候,使用实体Bean会导致程序性能不佳。如果实体Bean的唯一用途就是提取和更新数据,改成在会话Bean之内利用JDBC访问数据库可以得到更好的性能。

  2.3 选择合适的引用机制

  在典型的JSP应用系统中,页头、页脚部分往往被抽取出来,然后根据需要引入页头、页脚。当前,在JSP页面中引入外部资源的方法主要有两种:include指令,以及include动作。

  include指令:例如<%@ include file="copyright.html" %>。该指令在编译时引入指定的资源。在编译之前,带有include指令的页面和指定的资源被合并成一个文件。被引用的外部资源在编译时就确定,比运行时才确定资源更高效。
include动作:例如<jsp:include page="copyright.jsp" />。该动作引入指定页面执行后生成的结果。由于它在运行时完成,因此对输出结果的控制更加灵活。但时,只有当被引用的内容频繁地改变时,或者在对主页面的请求没有出现之前,被引用的页面无法确定时,使用include动作才合算。

  2.4 在部署描述器中设置只读属性

  实体Bean的部署描述器允许把所有get方法设置成“只读”。当某个事务单元的工作只包含执行读取操作的方法时,设置只读属性有利于提高性能,因为容器不必再执行存储操作。

  2.5 缓冲对EJB Home的访问

  EJB Home接口通过JNDI名称查找获得。这个操作需要相当可观的开销。JNDI查找最好放入Servlet的init()方法里面。如果应用中多处频繁地出现EJB访问,最好创建一个EJBHomeCache类。EJBHomeCache类一般应该作为singleton实现。

  2.6 为EJB实现本地接口

  本地接口是EJB 2.0规范新增的内容,它使得Bean能够避免远程调用的开销。请考虑下面的代码。

PayBeanHome home = (PayBeanHome)
javax.rmi.PortableRemoteObject.narrow
(ctx.lookup ("PayBeanHome"), PayBeanHome.class);
PayBean bean = (PayBean)
javax.rmi.PortableRemoteObject.narrow
(home.create(), PayBean.class);

  第一个语句表示我们要寻找Bean的Home接口。这个查找通过JNDI进行,它是一个RMI调用。然后,我们定位远程对象,返回代理引用,这也是一个 RMI调用。第二个语句示范了如何创建一个实例,涉及了创建IIOP请求并在网络上传输请求的stub程序,它也是一个RMI调用。

  要实现本地接口,我们必须作如下修改:

  方法不能再抛出java.rmi.RemoteException异常,包括从RemoteException派生的异常,比如 TransactionRequiredException、TransactionRolledBackException和 NoSuchObjectException。EJB提供了等价的本地异常,如TransactionRequiredLocalException、 TransactionRolledBackLocalException和NoSuchObjectLocalException。

  所有数据和返回值都通过引用的方式传递,而不是传递值。
  本地接口必须在EJB部署的机器上使用。简而言之,客户程序和提供服务的组件必须在同一个JVM上运行。
  如果Bean实现了本地接口,则其引用不可串行化。
  请参见《用本地引用提高EJB访问效率》。

0
0
查看评论

JAVA性能优化权威指南 读书笔记四

HotSpot JIT编译器 简介   编译指的是从编程完成的代码转化到机器能够是使用的机器码的过程,在这个过程中开发人员可能需要等待很长一段时间才能得到最终可以运行的软件。JAVA采用了另外一种角度来解决这个问题,由于JAVA是基于JVM虚拟机的一种语言,这就使得java可以将编译的...
  • sunsun314
  • sunsun314
  • 2016-12-04 13:45
  • 391

大话java性能调优读书笔记

序:最大的思想紊乱是相信人们想要相信的事情. 1 调优方法, 调优方向 调优层次 2导致系统瓶颈的计算资源:cpu、内存,磁盘IO, 网络传送,数据库,锁竞争,异常等 磁盘IO读写速度比内存慢很多,由于网络的不确定性,可能网络的操作速度比磁盘I/O更慢 数据库中的连接数量,读写速度,数据合并...
  • sinat_29581293
  • sinat_29581293
  • 2017-03-28 20:34
  • 2485

《大话Java性能优化》面向对象及基础类型相关部分

Java语言里面的所有类都默认继承自java.lang.Object类,在java.lang.Object类里面有一个clone()方法,JDK API的说明文档里面解释了这个方法会返回Object对象的一个拷贝。我们需要说明两点:一是拷贝对象返回的是一个新对象,而不是一个对象的引用地址;二是拷贝对...
  • zmycoco2
  • zmycoco2
  • 2016-08-28 16:56
  • 839

JAVA性能优化权威指南 读书笔记(一)

JAVA性能优化权威指南 读书笔记   最近也算是比较认真的读了一下java性能优化权威指南,期间断断续续持续了大概一个半月,深感自己读书的效率和积极性还是存在问题,总之,在此我还是先记录一下相关的收获和感悟。其中书本中相对比较模糊的概念我在这里不进行太过详细的阐述,只有部分明确的概念会...
  • sunsun314
  • sunsun314
  • 2016-11-27 21:27
  • 1593

java性能优化技巧二

1. 谨慎对待Java的循环遍历Java中的列表遍历可比它看起来要麻烦多了。就以下面两段代码为例:A:1234private final List _bars;for(Bar bar : _bars) {    //Do important stuff}B:1...
  • jason0539
  • jason0539
  • 2015-04-10 07:47
  • 4378

软件一定存在修改的余地——《大话Java性能优化》

程序凑合着上线是一回事,而在压力下运行并可以维护下去就是另一回事了。《大话Java性能优化》就是一本让人学会优化Java代码性能的书,书中详细介绍了API调用、算法和设计模式、多线程、垃圾回收等各方面的性能优化方案和性能测试方法,除了第二章完全基于JavaEE外其他章节都是Android开发中性能问...
  • dongfeng9ge
  • dongfeng9ge
  • 2016-05-15 21:21
  • 3763

JAVA程序性能优化-让你的java程序更快、更稳定学习笔记一性能优化一般步骤

《JAVA程序性能优化-让你的java程序更快、更稳定》学习笔记一性能优化一般步骤
  • aovenus
  • aovenus
  • 2014-01-06 15:36
  • 1108

java性能优化总结(2):集合

补充:性能优化总结(1):基础 前面对java性能优化基础篇谈了一些,但不全,这里再给大家再补充一下。个人认为,如果想要对java进行性能优化必须对java中jvm内存模型、jvm中类加载机制以及jvm中对象创建过程了如指掌。如果对这一块不了解的小伙伴可以查看我之前写的博客: java类加载机制 ...
  • Sunzhongwei1988
  • Sunzhongwei1988
  • 2017-01-03 21:00
  • 96

10年Java开发大神总结代码性能优化

代码优化,可能说起来一些人觉得没用,但笔者觉得应该平时开发过程中,就尽量要求自己,养成良好习惯,一个个小的优化点,积攒起来绝对是有大幅度效率提升的。好了,下面千锋教育小编将总结的知识点分享给大家。 代码优化的目标: 1.减小代码体积 2.提高整个系统的运行效率 代码细节优化   ...
  • wocong6078
  • wocong6078
  • 2017-07-28 20:46
  • 200

JAVA性能优化权威指南 读书笔记五

Java应用分析技巧 1性能优化机会 大多数的java性能优化都集中于以下几类: 1更高效的算法 2减少锁争用 3为算法生成更有效的代码   2系统或内核态CPU的使用   在理想状态下应用的使用系统态CPU应该是0%,但是对于大多数存在I/O调用需要的应用来说这...
  • sunsun314
  • sunsun314
  • 2016-12-08 21:36
  • 641
    个人资料
    • 访问:3468787次
    • 积分:30218
    • 等级:
    • 排名:第202名
    • 原创:347篇
    • 转载:561篇
    • 译文:7篇
    • 评论:344条
    艺术设计类