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言語講座」もどうぞ。