Java講座

最適化の章
5.3. try-catch ブロックはループ外に置く
『目的』

try-catch ブロックの書き方で実行速度を改善しましょう。

『Before』

try-catch ブロックがループの内部にあるとコードの実行速度が落ちる可能性があります。
for (int i = 0; i < MAX; i++) {
    try {
        FileInputStream fis = new FileInputStream("c:\\hoge\\foo\bar.dat");
    } catch (FileNotFoundException e) {
        /* 繰り返して行う必要がない例外処理。 */
    }
}
ループ繰り返し回数が1000回の場合、188ms要しました。

『After』

try-catch ブロックの括りを外に出してみます。
try {  /* 括りをループの外に出しました */
    for (int i = 0; i < MAX; i++) {
        FileInputStream fis = new FileInputStream("c:\\hoge\\foo\bar.dat");
    }
} catch (FileNotFoundException e) {
    /* 繰り返して行う必要がない例外処理。 */
}
繰り返し回数が1000回の場合、0ms(1ms 未満)で済みました。

『まとめ』

微々たるものですが、確実に速くなります。

try-catchの評価はそれなりにコストがかかるので、 ループの外部に括り出せるのであれば積極的に出しましょう。
前のページ   次のページ

当ページ・当社へのご意見やご感想があればお手数ですが「お問い合わせ」までお願いいたします。
当社への就職をお考えの方は「採用情報ページ」までお願いいたします。
C言語を学びたい方は「C言語講座」もどうぞ。