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语句进行优化
  • 对数据库进行优化
  • 对数据库软件进行优化
    在应用层优化数据库访问,涉及大量的编程技巧。比方,当使用JDBC进行查询的时候,对于大量拥有相同结构的SQL查询,能够使用PerpareStatement取代Statement。以提高数据库的查询效率。在使用Select语句中,显示指定要查询的列名,避免使用*。
    对数据库的优化时,主要目的是建立一个具有良好表结构的数据库。
    比方,为了提高多表级联查询的效率,能够合理地使用冗余字段:对于大表,能够使用行的水平分割或者相似Oracle分区的技术;为了提高数据的查询效率,能够建立有效且适宜的索引

5.JAVA性能优化之操作系统优化

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

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值