Java性能优化的五种⽅式
Java性能优化的五种⽅式
1.Java性能优化之设计优化
设计优化处于性能优化⼿段的上层,往往要在软件开发之前进⾏。在软件开发之前,系统架构师应该就评估系统可能存在的各种潜在问题和技术难点,并给出合理的设计⽅案,因为软件设计和系统架构对软件总体设计质量有决定性的影响。所以,设计调优对系统的性能影响也是最⼤的。假如说代码优化、JVM优化都是对系统的微观层次的“量”的优化,那设计优化就是对系统“质”的优化。
设计优化的显著特征是:它能够规避某⼀个组件的性能问题,改良组件的实现;组件A通过循环监控不断的检测时间E是否发⽣,其检测⾏为必定会占⽤部分系统资源,因此开发者必须检测频率和资源消耗上取的平衡,假设检测频率太低,尽管降低了资源消耗,可是系统实时反应性就会降低,假设进⾏代码层的调优,就须要优化检测⽅法的实现及要求得⼀个最为恰当得检测频率,对于这个问题我们就能够⽤设计模式中的 观察者模式,当事件E发⽣的时刻,由事件E通知组件A,从⽽触发A得⾏为。这样得设计根本上功课了存在性能隐患得循环监控,从根本上攻克了这⼀问题。
进⾏设计优化时,设计⼈员必须熟悉经常使⽤的设计⽅法,设计模式,以及主要的性能组件和经常使⽤
的优化思路,并将其有机地集成在软件系统中。注意:⼀个良好的系统设计能规避⾮常多潜在的性能问题。因此,尽可能多花些时间在系统设计上,是创建⾼性能程序的关键。
2.JAVA性能优化之代码优化
代码调优是在软件开发中或者是软件开发完毕后,软件维护过程中进⾏的程序代码的改进和优化。代码优化设计诸多编码技巧,须要开发者熟悉相关的语⾔API,并在适合的场景中正确的使⽤相关API或类库。同⼀时候,对算法、数据结构的灵活使⽤,也是代码优化的⼀个重要内容。
尽快代码优化从微观上对性能进⾏调整,可是⼀个“好"的实现和⼀个”坏“的实现对系统的影响也是⾮常⼤的。⽐⽅,相同作为List的实现,LinkedList和ArrayList在随机访问上的性能却差了好⼏个量级;⽐⽅相同是⽂件读写的实现,使⽤Stream⽅式和使⽤Java NIO的⽅式,其系统可能⼜会是还有⼀个数量级。
因此,尽管与设计优化相⽐,笔者将代码优化成为在微观层⾯上的优化,但它却是对系统性能产⽣最直接影响的优化⽅法。
3.JVM优化
因为Java软件总是执⾏在JVM虚拟机上,对JVM虚拟机进⾏优化也能⼀定程度上提升JAVA程序的性能。
JVM通常能够在软件开发期进⾏,如在开发完毕或者是软件开发的某⼀⾥程碑阶段,作为JAVA软件的执⾏平台。JVM的各项参数将会直接影响JAVA程序的性能。
⽐⽅,JVM的堆⼤⼩,垃圾回收策略等等,要进⾏JVM层⾯的调优,须要开发者对JVM的执⾏原理和基本内存结构有⼀定的了解。如,堆内存的结构,GC的种类等。然后,根据引⽤程序的特点,设置合理的JVM启动参数。
4.数据库优化
对数据库的调优能够分为三个部分:
在应⽤层对SQL语句进⾏优化
sql优化的几种方式对数据库进⾏优化
对数据库软件进⾏优化
在应⽤层优化数据库访问,涉及⼤量的编程技巧。⽐⽅,当使⽤JDBC进⾏查询的时候,对于⼤量拥有相同结构的SQL查询,能够使⽤PerpareStatement取代Statement。以提⾼数据库的查询效率。在使⽤Select语句中,显⽰指定要查询的列名,避免使⽤*。
对数据库的优化时,主要⽬的是建⽴⼀个具有良好表结构的数据库。
⽐⽅,为了提⾼多表级联查询的效率,能够合理地使⽤冗余字段:对于⼤表,能够使⽤⾏的⽔平分割或者相似Oracle分区的技术;为了提⾼数据的查询效率,能够建⽴有效且适宜的索引
5.JAVA性能优化之操作系统优化
操作系统,调优的⼿段和参数可能有所不同,⽐⽅,在主流Unix系统中。共享内存段、信号量、共享内存最⼤值(shmax)、共享内存最⼩值(shmin)等都是能够进⾏优化的系统资源。此外,如最⼤⽂件句柄数、虚拟内存⼤⼩,磁盘的块⼤⼩等参数都可能对软件性能产⽣影响。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。