【java performance】将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

依赖别人的人等于折断了自己的翅膀,永远也体会不到飞翔的快乐。

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

相关文章:

你感兴趣的文章:

标签云: