早すぎる最適化は、読みにくく保守不可能なコードにつながるため、諸悪の根源であることは誰もが知っています。さらに悪いのは、誰かが「最適化」を実装するときに悲観的になることです。考える速くなりますが、結局は遅くなり、バグが多くなり、メンテナンスが不可能になります。これまでに見た中で最もばかげた例は何ですか?
ベストアンサー1
「時期尚早な最適化は諸悪の根源である」というフレーズは、あまりにも使い古されていると思います。多くのプロジェクトでは、このフレーズがプロジェクトの後半までパフォーマンスを考慮しない言い訳になっています。
このフレーズは、人々が仕事を避けるための言い訳として使われることがよくあります。このフレーズは、実際には「ああ、私たちはそれを事前に考えていなかったし、今それに対処する時間もありません」と言うべきときに使用されているのを目にします。
私は「悲観化」によってもたらされた問題の例よりも、愚かなパフォーマンスの問題の「ばかげた」例をはるかに多く見てきました。
- プログラムの起動中に同じレジストリ キーを何千回 (または何万回) も読み取ります。
- 同じDLLを何百回、何千回もロードする
- ファイルのフルパスを不必要に保持することで、数メガバイトのメモリを無駄にする
- データ構造が整理されていないため、必要以上に多くのメモリを消費する
- ファイル名またはパスを格納するすべての文字列のサイズを MAX_PATH に変更する
- イベント、コールバック、その他の通知メカニズムを持つものに対する無償のポーリング
もっと良い表現は、「測定と理解のない最適化は最適化ではなく、単なるランダムな変更に過ぎない」だと思います。
優れたパフォーマンスを実現する作業には時間がかかります。多くの場合、機能やコンポーネント自体の開発よりも時間がかかります。