`
xieboxin
  • 浏览: 4644 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Java优化编程

    博客分类:
  • Java
阅读更多
不要在循环中调用synchronized(同步)方法

方法的同步需要消耗相当大的资料,在一个循环中调用它绝对不是一个好主意。

例子:
import java.util.Vector;
public class SYN {
    public synchronized void method (Object o) {
    }
    private void test () {
        for (int i = 0; i < vector.size(); i++) {
            method (vector.elementAt(i));    // violation
        }
    }
    private Vector vector = new Vector (5, 5);
}


更正:
不要在循环体中调用同步方法,如果必须同步的话,推荐以下方式:
import java.util.Vector;
public class SYN {
    public void method (Object o) {
    }
private void test () {
    synchronized{//在一个同步块中执行非同步方法
            for (int i = 0; i < vector.size(); i++) {
                method (vector.elementAt(i));   
            }
        }
    }
    private Vector vector = new Vector (5, 5);
}




将try/catch块移出循环

把try/catch块放入循环体内,会极大的影响性能,如果编译JIT被关闭或者你所使用的是一个不带JIT的JVM,性能会将下降21%之多!
        
例子:        
import java.io.FileInputStream;
public class TRY {
    void method (FileInputStream fis) {
        for (int i = 0; i < size; i++) {
            try {                                      // violation
                _sum += fis.read();
            } catch (Exception e) {}
        }
    }
    private int _sum;
}

        
更正:        
将try/catch块移出循环        
    void method (FileInputStream fis) {
        try {
            for (int i = 0; i < size; i++) {
                _sum += fis.read();
            }
        } catch (Exception e) {}
    }

        
参考资料:
Peter Haggar: "Practical Java - Programming Language Guide".
Addison Wesley, 2000, pp.81 – 83



不要在循环体中实例化变量

在循环体中实例化临时变量将会增加内存消耗

例子:        
import java.util.Vector;
public class LOOP {
    void method (Vector v) {
        for (int i=0;i < v.size();i++) {
            Object o = new Object();
            o = v.elementAt(i);
        }
    }
}

        
更正:        
在循环体外定义变量,并反复使用        
import java.util.Vector;
public class LOOP {
    void method (Vector v) {
        Object o;
        for (int i=0;i<v.size();i++) {
            o = v.elementAt(i);
        }
    }
}


尽可能的使用栈变量

如果一个变量需要经常访问,那么你就需要考虑这个变量的作用域了。static? local?还是实例变量?访问静态变量和实例变量将会比访问局部变量多耗费2-3个时钟周期。
        
例子:
public class USV {
    void getSum (int[] values) {
        for (int i=0; i < value.length; i++) {
            _sum += value[i];           // violation.
        }
    }
    void getSum2 (int[] values) {
        for (int i=0; i < value.length; i++) {
            _staticSum += value[i];
        }
    }
    private int _sum;
    private static int _staticSum;
}   
 
        
更正:        
如果可能,请使用局部变量作为你经常访问的变量。
你可以按下面的方法来修改getSum()方法:        
void getSum (int[] values) {
    int sum = _sum;  // temporary local variable.
    for (int i=0; i < value.length; i++) {
        sum += value[i];
    }
    _sum = sum;
}

        
参考资料:        
Peter Haggar: "Practical Java - Programming Language Guide".
Addison Wesley, 2000, pp.122 – 125
分享到:
评论

相关推荐

    java优化编程 java优化编程 java优化编程

    Java优化编程是提升Java应用程序性能的关键技术,涵盖了多个方面的知识,包括代码优化、内存管理、垃圾回收、并发处理以及JVM参数调优等。以下是对这些主题的详细讲解: 1. **代码优化**:编写高效的Java代码是优化...

    Java优化编程(第二版PDF)

    一本经典的关于java优化编程的书。通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做...

    java优化编程(林胜利版)

    对java编程的优化作了比较详尽的讲解,包括内存怎么优化,程序的优化,ejb、jms的优化

    java优化编程ppt讲义,附代码

    **Java优化编程PPT讲义概述** 这是一份专门针对Java优化编程的内部培训资料,旨在帮助中级及以上水平的开发者提升代码性能,实现更高效的应用程序。这份讲义结合了理论与实践,深入探讨了Java语言在实际开发中的...

    JAVA优化编程

    《JAVA优化编程》一书深入探讨了JAVA编程中的性能优化技术,旨在帮助开发者提升应用程序的运行效率和系统资源利用率。在JAVA开发过程中,优化是必不可少的一环,它能确保程序在面对大规模数据处理、高并发场景时仍能...

    JAVA优化编程.part1

    JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...

    JAVA优化编程.part2

    JAVA优化编程,这是一本讲解关于java编程方面应该如何编码才能是你的java程序取得更高的效率,也许你说没必要,当实际上对程序进行优化是相当重要和必要的。如果你在学习java或者已经学习了java的基本语法,那么我...

    JAVA优化编程.zip

    在Java优化编程中,我们关注的是如何提升程序的性能、减少资源消耗以及提高代码的可维护性。这是一项至关重要的任务,特别是在处理大数据、高并发或者长时间运行的服务时。以下是一些关键的知识点: 1. **JVM优化**...

    JAVA 优化编程,提高代码质量

    本文将深入探讨Java优化的多个方面,帮助开发者掌握优化技巧,提升代码质量。 首先,我们要了解JVM(Java虚拟机)的工作原理,因为它是Java代码执行的基础。理解JVM内存模型,包括堆内存、栈内存、方法区、元空间等...

    JAVA优化编程_程序设计

    "JAVA优化编程_程序设计"的主题着重于如何提高Java应用程序的性能,降低资源消耗,提升用户体验。这涉及到一系列的专业知识和技术,包括但不限于内存管理、并发处理、代码优化策略以及垃圾回收机制等。 1. **内存...

    java优化编程 就是你想要的

    《JAVA优化编程》这本书是为Java开发者提供的一本专业指南,旨在帮助读者提升代码性能,降低系统资源消耗,从而打造更高效、更稳定的项目。在Java编程领域,优化是一项至关重要的技能,它不仅关乎程序运行速度,也...

    JAVA优化编程详解

    在《JAVA优化编程详解》这本书中,作者深入探讨了如何将Java编程技能提升到一个全新的层次,特别是聚焦于性能优化这一关键领域。Java优化不仅仅是关于提高代码运行速度,更是关于资源的有效利用,确保应用程序在复杂...

    JAVA优化编程(part2)

    一本不错的书,会对你的JAVA编程水平有很大提高

    Java优化编程(pdf)

    《Java优化编程》是一本深入探讨Java技术领域性能优化的专业书籍,主要涵盖了Java语言、JSP、Servlet以及JDBC这四个关键领域的优化策略和技术。在Java编程中,优化是提高程序运行效率、减少资源消耗、提升用户体验的...

    开发资料下载JAVA优化编程(上)

    在深入探讨《开发资料下载JAVA优化编程(上)》这篇文章的具体内容之前,我们首先要明确几个关键点。首先,这篇文章的标题已经直接告诉我们,本文将聚焦于Java编程语言的性能优化问题。其次,由于描述部分提供的是一...

    JAVA优化编程[1

    JAVA优化编程[1] JAVA 虚拟机 算法改进 内存管理

Global site tag (gtag.js) - Google Analytics