当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

J2EE系统优化的几点领会[Java编程]

赞助商链接



  本文“J2EE系统优化的几点领会[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

J2EE系统优化的几点领会(1、对象)

说到系统优化,是一个对比复杂的问题,触及到软件的各个方面:需求、模块划分、数据库计划、程序编码以及一些特别的优化办法如缓存技术等.而差别的利用又有其特别的优化战略和技术.同时优化是贯串系统从需求到实现再到保护的各个阶段的一项活动,而在各个阶段又有其差别的着眼点和具体办法.

本文安身于具体的J2EE项目实践,结合一些已有的优化条例,提出自己的一些领会,也算是作为一次对实际项目经验教导的总结.

优化普通意义上说是提高已有系统的性能,削减如内存、数据库、网络带宽等资源的占用,是在系统开辟告一段落的前提下举行.普通是通过压力测试或具体利用发现性能方面的问题,然后探求性能瓶颈,并结合项目进度、人员安置、技术储备等因素,提出呼应的优化战略.

下面结合一些案例,举行具体的谈论,并但愿能总结出一些具有代表性的条例:

条例一:尽大概重用对象,避免成立过量短时对象

对象在面向对象编程中到处可见,乃至可以毫不浮夸的说是:“一切都是对象”.若何更好的成立和利用对象,是优化中要考虑的一个重要方面.笔者将对象按利用分为两大类:独享对象和同享对象.独享对象指由某个线程单独拥有并保护其生命周期的对象,普通是通过new 成立的对象,线程完毕且无别的对这个对象的引用,这个对象将由垃圾汇集机制自动GC.同享对象指由多个线程同享的对象,各线程保持多个指向同一个对象的引用,任何对这个对象的改正城市在别的引用上得到表现,同享对象普通通过Factory工厂的getInstace()办法成立,单例情势就是成立同享对象的尺度实现.独享对象由于无别的指向同一对象的引用,不用耽忧别的引用对对象属性的改正,在多线程环境里,也就不需求对其大概改正属性的办法加以同步,削减了出错的隐患和复杂性,但由于需求为每个线程都成立对象,增添了对内存的需求和JVM GC的负担.同享对象则需求举行得当的同步(避免较大的同步块,同时避免死锁).

还有几种特别对象:不变对象和办法对象.不变对象指对象对外不含有改正对象属性的办法(如set办法),外部要改正属性只能通过new新的实例来实现.不变对象最大的好处就是无需耽忧属性被改正,避免了潜在的bug,并能无需任何额外工作(好像步)就很好的工作在多线程环境下.如JDK的String对象就是典型的不变对象.办法对象简单的说就是仅包含办法,不含有属性的对象.由于没有对象属性,办法中无需举行改正属性的操作,也就可以采取static办法或单例情势,避免每次利用都要new对象,削减对象的利用.

那么该若何肯定成立何种对象,这就要结合对象的利用方法和生命周期、对象大小、构建花销等方面来综合考虑.假如对象生命周期较长,会存在改正操作,不能容忍别的线程对其的改正,就应当采取独享对象,如常见的Bean类.而假如对象生命周期较长,且能为各个线程同享,便可以考虑同享对象.同享有2种常见情形,一种是系统全局对象,如配置属性等,各个线程应当引用同一对象,任何对这个对象的改正城市影响别的线程;另一种是由于对象成立开销较大,各线程对此对象是瞬时拜候,且无需再次读取其属性,如常见的Date 对象,普通这种对象的利用是瞬时的,比方把它format成String,假如每次成立然后等候GC就会浪费大量内存和CPU时间,较好做法就是做成同享对象,各个线程先set再利用,注意对举行set并拜候的办法要同步.不变对象普通利用在对象成立开销较小(属性较少,类层次较少),且需求能安闲同享的情形.如一个对象里的常量对象,利用public static final AAA=new AAA(…) 成立.办法对象利用较广,如Util类、DAO类等,这些对象供应操作别的对象(普通是bean对象)的接口,能对系统在层次和功效上举行解耦合.

J2EE系统优化的几点领会(2、循环)


  以上是“J2EE系统优化的几点领会[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 若何开辟出高质量J2EE系统
  • J2EE中集成赛门铁克防病毒扫描引擎
  • 基于J2EE的电子商务开辟模子及其实现
  • <b>安置基于JBoss的J2EE操纵程序</b>
  • J2EE操纵下基于AOP的抓取战略实现
  • <b>集成技术:.NET单挑J2EE</b>
  • 开辟J2EE企业级操纵程序办法
  • 软件体系架构情势在J2EE中的操纵
  • J2EE底子 用Struts框架开辟MVC系统步骤
  • <b>J2EE底子:Struts框架初学者从这里入门</b>
  • Cell插件在J2EE系统中的操纵
  • J2EE新手入门图解
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .