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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:关于Java栈与堆的考虑
- ·下一篇文章:在Java操纵程序中成立图象
- ·中查找“J2EE系统优化的几点领会”更多相关内容
- ·中查找“J2EE系统优化的几点领会”更多相关内容