注目★★★★★Hacker News
「きれいなコード」の落とし穴、仮想関数は 35 サイクル無駄
30秒で把握
- 1著者がポリモーフィズム中心の「きれいなコード」と単純な switch/enum 実装を実測比較
- 2仮想関数の多態性実装は 1 図形あたり約 35 サイクル消費・性能無視のコスト判明
- 3性能要件がある系では単一責任・小関数ルールが常に最適とは限らず選択が必要
要約
プログラミングの「きれいなコード」ガイドラインの多くは、実行時性能を大きく損なう可能性がある。著者は多態性・単一責任・小さな関数などの「きれいなコード」ルールに従った実装例を測定し、ポリモーフィズムベースの Area 計算が 1 図形あたり約 35 サイクルを要する一方で、enum とスイッチ文を使った単純な実装では大幅に高速化することを示した。可読性と性能のトレードオフを意識的に選択すべきであり、すべての「ベストプラクティス」が全ケースで最適とは限らないと論じた。
あなたへの影響
CPU集約的な処理やリアルタイムシステムを担当するチームは、ポリモーフィズムの仮想関数呼び出しコストを認識した上で、キャッシュ親和性とパイプライン効率を優先する設計との併用を検討する価値がある。
推奨:「きれいなコード」の指針は可読性・保守性の観点では有効だが、性能クリティカルなパスでは実装選択を明示的に正当化すべき。