Java性能如何优化?

Python023

Java性能如何优化?,第1张

代码优化细节

1、尽量指定类、方法的final修饰符

带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子,例如java.lang.String,整个类都是final的。为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。

如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,具体参见Java运行期优化。此举能够使性能平均提高50%。

2、尽量重用对象

特别是String对象的使用,出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象,以后可能还需要花时间对这些对象进行垃圾回收和处理,因此,生成过多的对象将会给程序的性能带来很大的影响。

3、尽可能使用局部变量

调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中,速度较快,其他变量,如静态变量、实例变量等,都在堆中创建,速度较慢。另外,栈中创建的变量,随着方法的运行结束,这些内容就没了,不需要额外的垃圾回收。

4、及时关闭流

Java编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,将会导致严重的后果。

5、尽量减少对变量的重复计算

明确一个概念,对方法的调用,即使方法中只有一句语句,也是有消耗的,包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作:

for (int i = 0i <list.size()i++)

{...}

建议替换为:

for (int i = 0, length = list.size()i <lengthi++)

{...}

这样,在list.size()很大的时候,就减少了很多的消耗

大多数Java开发人员都认为性能优化是复杂的,需要大量的经验和知识。

其实这样的说法是有一定的道理的,一般情况下,优化应用程序以获得最好的性能不是一件容易的事。

但这并不意味着如果你没有知识,你什么也做不了,下面河南电脑培训为大家介绍一些易于遵循的调整方法。

1、必要之前不要优化这可能是最重要的性能调整之一。

您将要根据一般的最佳实践来高效地实施用例。

但是,这并不意味着在需要之前,必须更换标准库或进行复杂的优化。

在大多数情况下,过早的优化不仅占用大量的时间,而且不易读取代码,还可以进行维护。

更糟糕的是,河南IT培训发现这些优化通常不能带来任何好处,而你花费大量时间进行优化是应用程序的一个非关键部分。

2、为应用程序创建性能这是另一种常用技术,可帮助您避免在生产后发生的许多意外问题。

河南IT培训认为整个应用程序的性能测试,必须始终定义套件并在性能提高之前和之后运行。

3、处理最大的瓶颈创建测试套件并使用分析器分析应用程序后,您可以列出需要解决的问题,保证提高性能。

这样非常好,但我还没有回答你应该从哪里开始的问题。

北大青鸟建议您可以专注于速效系统,或从最重要的问题开始。

大多数JAVA开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。

好吧,不能说这是完全错误的。

  优化应用程序以获得最佳性能不是一件容易的事情。

但是,这并不意味着如果你不具备这些知识,就不能做任何事情。

这里有一些易于遵循的调优方式,辽宁java培训http://www.kmbdqn.cn/建议可以做个参考!  大部分建议是针对Java的。

但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言。

在讨论专门针对Java的性能调优技巧之前,让我们先来看看通用技巧。

  1.在你知道必要之前不要优化  这可能是最重要的性能调整技巧之一。

你应该遵循常见的最佳实践做法并尝试高效地实现用例。

但是,这并不意味着在你证明必要之前,你应该更换任何标准库或构建复杂的优化。

  在大多数情况下,过早优化不但会占用大量时间,而且会使代码变得难以阅读和维护。

更糟糕的是,这些优化通常不会带来任何好处,因为你花费大量时间来优化的是应用程序的非关键部分。

  那么,你如何证明你需要优化一些东西呢?  首先,你需要定义应用程序代码的速度得多快,例如,为所有API调用指定最大响应时间,或者指定在特定时间范围内要导入的记录数量。

在完成这些之后,你就可以测量应用程序的哪些部分太慢需要改进。

然后,接着看第二个技巧。

  2.使用分析器查找真正的瓶颈  在你遵循第一个建议并确定了应用程序的某些部分需要改进后,那么从哪里开始呢?  你可以用两种方法来解决问题:  ·查看你的代码,并从看起来可疑或者你觉得可能会产生问题的部分开始。

  ·或者使用分析器并获取有关代码每个部分的行为和性能的详细信息。

  希望不需要我解释为什么应该始终遵循第二种方法的原因。

  很明显,基于分析器的方法可以让你更好地理解代码的性能影响,并使你能够专注于最关键的部分。

如果你曾使用过分析器,那么你一定记得曾经你是多么惊讶于一下就找到了代码的哪些部分产生了性能问题。

老实说,我第一次的猜测不止一次地导致我走错了方向。

  3.为整个应用程序创建性能测试套件  这是另一个通用技巧,可以帮助你避免在将性能改进部署到生产后经常会发生的许多意外问题。

你应该总是定义一个测试整个应用程序的性能测试套件,并在性能改进之前和之后运行它。

  这些额外的测试运行将帮助你识别更改的功能和性能副作用,并确保不会导致弊大于利的更新。

如果你工作于被应用程序若干不同部分使用的组件,如数据库或缓存,那么这一点就尤其重要。