gzyueqian
13352868059

有哪些方法可以让java的性能调优?

更新时间: 2020-04-03 16:49:21来源: 粤嵌教育浏览量:7661

      java一直是开发界比较受欢迎的开发语言,对于开发者来说java在他们心中的地位是非常的高的。在这么多的开发语言中java一直可以处于不败的地位是有它的道理的,java不管是在性能上还是包容上都比其他的语言要高,下面粤嵌科技的小编就来给大家讲解下有哪些方法是可以让java的性能调优的?

  Java性能调优有哪些方式?


  1、设计调优


  设计调优处于Java性能调优手段的上层,它往往须要在软件开发之前进行。在软件开发之前,系统架构师应该就评估系统可能存在的各种潜在问题和技术难点,并给出合理的设计方案,因为软件设计和系统架构对软件总体设计质量有决定性的影响。所以,设计调优对系统的性能影响也是的,如果代码调优、JVM调优都是对系统微观层次的“量”的优化,那设计调优就是对系统”质”的优化.


  设计调优的一大显著特征是:它能够规避某一个组件的性能问题,而是改良组件的实现;打个比方,组件A通过循环监控不断的检測时间E是否发生,其检測行为必定会占用部分系统资源。因此,开发者必须检測频率和资源消耗上取得平衡。假设检測频率太低,尽管降低了资源消耗,可是系统实时反应性就会降低;假设进行代码层的调优,就须要优化检測方法的实现及要求得一个为恰当的检測频率。对于这个问题,我们就能够用设计模式中的观察者模式 ,当事件E发生的时刻,由事件E通知组件A,从而触发组件A的行为。这样的设计从根本上攻克了存在性能隐患的循环监控,从根本上攻克了这一问题。进行设计调优时,设计人员和必须熟悉经常使用的设计方法,设计模式,以及主要的性能组件和经常使用的优化思想,并将其有机地集成在软件系统中。


  2、代码调优


  代码调优是在软件开发中,或者是软件开发完毕后,软件维护过程中进行的程序代码的改进和优化。代码优化涉及诸多编码技巧,须要开发者熟悉相关的语言API ,并在适合的场景中正确的使用相关API或类库。同一时候,对算法,数据结构的灵活使用,也是代码优化的一个重要内容。


  尽管代码优化时,从微观上对性能进行调整,可是一个”好”的实现和一个”坏”的实现,对系统的影响也是非常大的。还是打个比方,相同作为List的实现,LinkedList和ArrayList在随机訪问上的性能却差了好几个量级;比方相同是文件读写的实现,使用Stream方式和使用JAVA NIO的方式,其系能可能又会是还有一个数量级。因此,尽管与设计优化相比,笔者将代码优化成为在微观层面上的优化,但它却是对系统性能产生直接影响的优化方法。


  3、JVM调优


  因为JAVA软件总是执行在JVM虚拟机之上。对JVM虚拟机进行优化,也能一定程度上的提升JAVA程序的性能。JVM通常能够在软件开发后期进行,如在开发完毕或者是软件开发的某一里程碑阶段。作为JAVA软件的执行平台,JVM的各项參数将会直接影响JAVA程序的性能。举个例子,JVM的堆大小,垃圾回收策略等等。要进行JVM层面的调优。须要开发者对JVM的执行原理和基本内存结构有一定的了解。如,堆内存的结构,GC的种类等。然后,根据引用程序的特点,设置合理的JVM启动參数。


  4、数据库调优


  对绝大部分应用系统而言,数据库是不可缺少的一部分,JAVA程序能够使用JDBC的方式连接数据库。对数据库的调优能够分为三个部分:在应用层对SQL语句进行优化;对数据库进行优化。对数据库软件进行优化。在应用层优化数据库訪问。涉及大量的编程技巧。比方。当使用JDBC进行查询的时候,对于大量拥有相同结构的SQL查询,能够使用PerparedStatement取代Statement。以提高数据库的查询效率。在使用Select语句中,显示指定要查询的列名 ,避免使用*在对数据库优化时,主要目的是建立一个具有良好表结构的数据库。在对数据库进行优化时。主要目的是建立一个具有良好表结构的数据库。比如,为了提高多表级联查询效率,能够合理地使用冗余字段。对于大表。能够使用行数据来水平分割,为了提高数据库的查询效率,能够建立有效且事宜的索引。


  5、操作系统调优


  操作系统,调优的手段和參数可能有所不同。比如,在主流Unix系统中,共享内存段。信号量,共享内存值。共享内存小值等都是能够进行优化的系统资源。此外,如文件句柄数,虚拟内存大小,磁盘的块大小等參数都可能对软件的性能产生影响,配置虚拟内存界面。


  以上就是粤嵌科技的小编给大家整理的关于有哪些方法可以让java的性能调优的方法了,如果说活你想要了解更多关于java的知识的话,那么粤嵌科技欢迎大家来我们的java培训班进行实地考察,也可以点击我们文章下面的获取试听资格按钮来获取我们的java技术课程试听资格,在免费试听中可以和我们的讲师进行面对面的交流。

免费预约试听课