【要約】Python vs Rust パフォーマンス比較検証 本当にPythonは遅い? [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が、Pythonの実行速度の限界と回避策について、定量的な判断基準を持てずにいる。計算負荷の高い処理をPythonで実装する際、どの程度のパフォーマンス低下を招くかが不明確である。
- ・Pythonインタプリタによる動的型チェックのコスト。
- ・関数呼び出しごとのバイトコードディスパッチによる遅延。
- ・純粋なPythonコードにおけるループ処理のオーバーヘッド。
// Approach
筆者が、PythonとRustの性能差を明らかにするため、4つの計算フェーズで比較検証を行った。同一アルゴリズムを用い、実装形態を変えて実行時間を計測している。
- ・再帰、素数計算、行列積、文字列処理の4項目を実施。
- ・Pure Python、Cバインディング、Rustの3形態で比較。
- ・Rustは--releaseビルドを用い、公平性を担保。
// Result
検証の結果、純粋なPythonはRustに対して大幅な遅延を示すことが判明した。計算内容に応じて、RustがPythonの24倍から84倍高速に動作する。
- ・フィボナッチ再帰ではRustが55倍高速。
- ・行列積ではRustが84倍高速。
- ・NumPy等の活用により、PythonでもRustと同等の速度を実現可能。
Senior Engineer Insight
> 計算コアをRustやC拡張に委譲し、制御をPythonで行う構成が実戦的である。Pythonの遅さは、インタプリタのループ処理に起因する。
- ・CPU密な計算はNumPy等で回避せよ。
- ・極限の性能が必要な場合はRustを採用せよ。
- ・開発速度と性能のトレードオフを意識せよ。