最適化の章
5.1. ループ内で不変の処理を実行しない
『目的』
ループ内での不変の処理を避けて実行速度を上げましょう。
『Before』
ループ内で時間のかかるメソッドを呼び出してみます。
List<Integer> integers = new ArrayList<>(); : for (int i : integers) { int n = longTimeMethod(); : }
1回のループにつき必ず longTimeMethod が呼ばれます。
ループ時にnの値が変わらないのであれば無駄な処理ですね。
『After』
値をキャッシュすることで不要な処理を省きましょう。
List<Integer> integers = new ArrayList<>(); : int n = longTimeMethod(); for (int i : integers) { : }
『まとめ』
微々たるものですが、確実に速くなります。
メソッドの重さによってはもっと大きく差が出てくるでしょう。
毎回メソッドを呼び出す必要がない場合は値をキャッシュしましょう。
< 前のページへ 次のページへ >-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針