【要約】Python のファイル探索を比較してみた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
- ・APIの選択ミスによる実行速度の劇的な低下。
- ・「新しいAPI(pathlib)は速い」という誤った認識。
- ・階層構造が深まることによる、指数関数的なパフォーマンスの悪化。
- ・大量のファイルに対する不適切なAPI利用による、システムリソースの浪費。
// Approach
1.4つの主要APIを用いたベンチマークの実施。
2.フラット構造と階層構造の2パターンによる計測。
3.OSレベルのシステムコール回数に着目した原因分析。
4.os.scandirによる属性情報のキャッシュ機構の検証。
// Result
- ・os.scandirが全条件で最速を記録。
- ・globとpathlibはos.walkの3〜5倍遅い。
- ・階層構造はフラット構造より10〜30倍低速。
- ・os.scandirはシステムコールを劇的に削減し、特にWindowsで高い効果を発揮。
Senior Engineer Insight
> 速度至上主義の現場では、os.scandirの再帰実装を標準化すべきである。pathlibは開発体験(DX)に優れるが、数万件規模のファイル操作ではオブジェクト生成コストが致命的な遅延を招く。OSの挙動、特にシステムコール回数を意識したAPI選択が、スケーラブルなシステム構築における必須スキルである。単なる「書きやすさ」に逃げず、計算量とI/Oコストを天秤にかける審美眼が求められる。