Java程序性能优化总结

1.避免在循环条件中使用复杂表达式

在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循
环条件值不变的话,程序将会运行的更快。
例子:

1 import java.util.vector;
2 class cel {
3 void method (vector vector) {
4 for (int i = 0; i < vector.size (); i++) // violation
5 ; // ...
6 }
7 }

更正:

1 class cel_fixed {
2 void method (vector vector) {
3 int size = vector.size ()
4 for (int i = 0; i < size; i++)
5 ; // ...
6 }
7 }

2.为‘vectors‘ 和 ‘hashtables‘定义初始大小

jvm 为 vector 扩充大小的时候需要重新创建一个更大的数组,将原原先数组中的内容复制过
来,最后,原先的数组再被回收。可见 vector 容量的扩大是一个颇费时间的事。
通常,默认的 10 个元素大小是不够的。你最好能准确的估计你所需要的最佳大小。

3.在 finally 块中关闭 stream

程序中使用到的资源应当被释放,以避免资源泄漏。这最好在 finally 块中去做。不管程序执行
的结果如何,finally 块总是会执行的,以确保资源的正确关闭。

4.使用‘system.arraycopy ()‘代替通过来循环复制数组

‘system.arraycopy ()‘ 要比通过循环来复制数组快的多。

5.让访问实例内变量的 getter/setter 方法变成”final”

简单的 getter/setter 方法应该被置成 final,这会告诉编译器,这个方法不会被重载,所以,可
以变成”inlined”

6.避免不需要的 instanceof 操作

7.单个字符使用char代替String,譬如indexof,startswith()

8.使用移位操作来代替‘a / b‘操作

"/"是一个很“昂贵”的操作,使用移位操作将会更快更有效。
例子:

 1 public class sdiv {
 2 public static final int num = 16;
 3 public void calculate(int a) {
 4 int div = a / 4;
 5 // should be replaced with "a >> 2".
 6 int div2 = a / 8;
 7 // should be replaced with "a >> 3".
 8 int temp = a / 3;
 9 }
10 }

更正:

1 public class sdiv {
2 public static final int num = 16;
3 public void calculate(int a) {
4 int div = a >> 2;
5 int div2 = a >> 3;
6 int temp = a / 3;
7 // 不能转换成位移操作
8 }
9 }

9、使用移位操作代替‘a * b‘同上。

[i]但我个人认为,除非是在一个非常大的循环内,性能非常重要,而且你很清楚你自己在做什
么,方可使用这种方法。否则提高性能所带来的程序晚读性的降低将是不合算的。
例子:

1 public class smul {
2 public void calculate(int a) {
3 int mul = a * 4;
4 // should be replaced with "a << 2".
5 int mul2 = 8 * a;
6 // should be replaced with "a << 3".
7 int temp = a * 3;
8 }
9 }


更正:

1 package opt;
2 public class smul {
3 public void calculate(int a) {
4 int mul = a << 2;
5 int mul2 = a << 3;
6 int temp = a * 3;
7 // 不能转换
8 }
9 }

 

时间: 2024-10-13 08:54:26

Java程序性能优化总结的相关文章

Java程序性能优化——性能调优层次

为了提升系统性能,开发人员可以从系统的各个角度和层次对系统进行优化.除了最常见的代码优化外,在软件架构上.JVM虚拟机层.数据库以及操作系统层都可以通过各种手段进行调优,从而在整体上提升系统的性能. 设计调优 设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行.在软件开发之初,软件架构师就应该评估系统可能存在的各种潜在的问题,并给出合理的设计方案.由于软件设计和架构对软件整体有决定性的影响,所以,设计调优对系统性能的影响也是最大的.如果说,代码优化.JVM优化都是对系统微观层面上"量&

Java程序性能优化技巧

多线程.集合.网络编程.内存优化.缓冲..spring.设计模式.软件工程.编程思想 1.生成对象时,合理分配空间和大小new ArrayList(100); 2.优化for循环Vector vect = new Vector(1000);for( inti=0; i<vect.size(); i++){ ...}for循环部分改写成:int size = vect.size();for( int i=0; i>size; i++){ ...} 如果size=1000,就可以减少1000次si

《Java程序性能优化》学习笔记 Ⅰ设计优化

豆瓣读书:http://book.douban.com/subject/19969386/ 第一章 Java性能调优概述 1.性能的参考指标 执行时间: CPU时间: 内存分配: 磁盘吞吐量: 网络吞吐量: 响应时间: 2.木桶定律   系统的最终性能取决于系统中性能表现最差的组件,例如window系统内置的评分就是选取最低分.可能成为系统瓶颈的计算资源如,磁盘I/O,异常,数据库,锁竞争,内存等. 性能优化的几个方面,如设计优化,Java程序优化,并行程序开发及优化,JVM调优,Java性能调

[JAVA] java程序性能优化

一.避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快. 例子: import java.util.vector; class cel { void method (vector vector) { for (int i = 0; i < vector.size (); i++) // violation ; // ... } } 更正: class cel_fixed { void metho

Java程序性能优化:代码优化

现在计算机的处理性能越来越好,加上JDK升级对一些代码的优化,在代码层针对一些细节进行调整可能看不到性能的明显提升, 但是我觉得在开发中注意这些,更多的是可以保持一种性能优先的意识,对一些敲代码时间比较短的同学挺有意义的. 一 循环条件下,循环体和判断条件中,都要避免对使用复杂表达式,减少对变量的重复计算 1.在循环中应该避免使用复杂的表达式. 在循环中,循环条件会被反复计算,应该避免把一些计算放在循环进行的部分中,程序将会运行的更快.比如: for(int i=0;i<list.size();

Java程序性能优化——设计优化

原文出自:http://blog.csdn.net/anxpp/article/details/51914119,转载请注明出处,谢谢! 1.前言 OK,之前写了一篇文章:"23种设计模式介绍以及在Java中的应用"详细介绍了如何将设计模式应用到Java编程中,而本文旨在介绍如何利用他们优化我们的程序,使其性能更佳. 设计模式的详细介绍请参照上面链接中的文章,不是本文的重点. 而Java程序的性能优化,不一定就仅仅是以提高系统性能为目的的,还可能是以用户体验.系统可维护性等为目的. 2

《Java程序性能优化:让你的Java程序更快、更稳定》

Java程序性能优化:让你的Java程序更快.更稳定, 卓越网更便宜,不错的书吧

Java程序性能优化——性能指标

性能概述 为什么程序总是那么慢?它现在到底在干什么?时间都花到哪里去了?也许,你经常会抱怨这些问题.如果是这样,那说明你的程序出了性能问题.和功能性问题相比,性能问题在有些情况下,可能并不算什么太大的问题,将就一下,就过去了!但是,严重的性能问题会导致程序瘫痪.假死.直至崩溃.本节就先来认识性能的各种表现和指标. 看懂程序的性能 读客户端程序而言,拙劣的性能会严重影响用户体验:界面停顿.抖动(非动作特效).响应迟钝等问题会遭到用户不停的抱怨.一个典型的例子就是Eclipse IDE工具在Full

《Java程序性能优化》学习笔记 Ⅳ JVM调优

第五章 JVM调优5.1 Java虚拟机内存模型1.JVM虚拟机将其内存数据分为程序计数器.虚拟机栈,本地方法栈,Java堆,和方法去等部分.5.2 JVM内存分配参数5.3 垃圾收集基础5.4 常用调优案例和方法5.5 使用JVM参数5.6 实战JVM调优 <Java程序性能优化>学习笔记 Ⅳ JVM调优

Java程序性能优化-概述

前言 这两天在看<Java程序性能优化>这本书,将我学到的书上好的东西分享给大家.做过开发的人应该或多或少都碰到过性能问题,遇到性能问题你是怎么做的呢?你能看懂程序的性能吗?本篇给大家讲下如何看懂程序的性能及性能的参考指标. 正题 程序性能的表现方式: 1.执行速度:程序的反映是否迅速,响应时间是否足够短. 执行速度可以受到多方面的影响,比如逻辑写的有问题,查询数据量大,网络问题等等. 2.内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏. 要根据程序的运行情况及服务器内存大小合理分