2024-01-29

[] 速度とシンプルさにトレードオフがあるという神話

pythonコードの速度のボトルネックを見つけるにはline_profilerが使える。

ゲーム感覚ボトルネック特定し、段階的に改善する。

だが一部の開発者は「速度に凝り過ぎるとコードが読みづらい」という。

これには異論がある。

大幅に速度を改善するようなコード改善は、むしろコードシンプルに保つ上でも重要な働きがある。

傾向としては、マルチプロセッシングなどを使わずに速度を改善した場合は、プログラムの長さは減少する。

速度を改善すれば、特定の出力をするコードの最小長(コルモゴロフ複雑性)に近づく。

速度改善によってわかりにくくなるという人は、数学ができないのかもしれない。

物理学では、変数単一文字で表すことが多いが、こういうのに慣れていると「シンプル」の概念に差が開く。

こういった科学的な「シンプルさ」を理解できない人に対して、意味説明する形で変数名を決めても、結局コード理解できないだろう。

かにビジネスドメインに近いコードであれば変数名をドメイン語に合わせるのがわかりやすい。

しかし「ボトルネック改善しなければシステム要件通りの速度にならない」ようなケースでは、数学的なコードの方がわかりやすくなるのである

  • 安心してください ビジネスに興味のある人たちは速度も要件に含めないといけないなんて知らないので問題ありません

  • 可読性を気にするならPythonを使うなよ

    • pythonって可読性低いの? 昔は教育用に使われていて読みやすいとか喧伝されてたような記憶があるが。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん