【java performance】将try/catch块移出循环

来源:互联网 发布:哪些app网络视频下载 编辑:程序博客网 时间:2024/06/03 07:39

把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

0 0
原创粉丝点击