最適化のコスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/21 23:57 UTC 版)
「最適化 (情報工学)」の記事における「最適化のコスト」の解説
ソフトウェア開発プロジェクトでは、コード最適化は新たな機能を追加するわけでもなく、失敗すれば既存の機能を壊してしまうこともある。最適化されたコードの可読性は低いので、最適化によってプログラムの保守性が損なわれることもある。「リファクタリング」と同様に、機能が保存されていることのテストが少なくとも必要とされる。 トリビアルな覗き穴最適化などはある程度以上のコンパイラならば実装しており、プログラマが手作業でそれと同等程度の最適化を施すのはバグの元でしかなく、意味が無いだけでなく有害である。例えば x = a + b * 4 のようなコードを x = a + b << 2 のように「最適化」してしまうのが典型的な失敗例であり、こういった最適化をプログラマの良い習慣であると評価しているような組織があったらそれはある種のシグナルである。 プログラマのリソースを消費して最適化を行うのではなく他の手段に頼るほうがコストパフォーマンスが良い場合がある。例えばWebアプリケーションの場合に最適化するのではなくサーバースペックの強化で対応したり、分散可能な場合にサーバー台数の増加で対応する。メモリ断片化やメモリリークの原因特定と修正を試みるよりも定期的に再起動するなど運用方法の変更で対応する。画像や映像処理は最適化余地の少ないCPU上で動作させるコードを最適化するのではなくGPUなど特化したハードウェアを用いるなど。
※この「最適化のコスト」の解説は、「最適化 (情報工学)」の解説の一部です。
「最適化のコスト」を含む「最適化 (情報工学)」の記事については、「最適化 (情報工学)」の概要を参照ください。
- 最適化のコストのページへのリンク