- 他のPythonプロファイラが行わない、あるいは行えないさまざまな処理を実現する、Python向けの高性能なCPU、GPU、メモリプロファイラ
- はるかに高速に動作しつつ、より詳細な情報を提供し、さらにAIベースの最適化提案を統合した初のプロファイラ
- CLI とWebベースのGUIを提供
- 高速かつ高精度
- 高速: 計測やPythonのトレース機能に依存する代わりにサンプリングを使用。オーバーヘッドは通常10〜20%を超えず、多くの場合それ以下
- 高精度: 精度テストの結果、Scaleneは最も正確なプロファイラの1つであり、所要時間を正確に測定できることが示されている
- 行レベルおよび関数単位でプロファイリングを行い、プログラム内で実行時間を占める関数と特定のコード行を示す
- CPUプロファイリング
- Pythonコードとネイティブコード(ライブラリを含む)で費やされた時間を 分離して測定 し、開発者が実際に最適化できるコードに集中できるようにする
- CPU時間やメモリ割り当てのかなりの部分を占める ホットスポット を赤色で強調表示
- システム時間 を別個に分離し、I/Oボトルネックを容易に見つけられる
- GPUプロファイリング
- NVIDIAベースのシステムに限り GPU時間 をレポート
- メモリプロファイリング
- メモリ使用量プロファイリング を行い、特殊なメモリアロケータを通じてメモリ増加の原因となる特定のコード行を特定
- Pythonコードとネイティブコードの メモリ消費比率 を分離して表示
- 行ごと のメモリプロファイルを生成
- メモリリーク が発生する可能性のある行を特定
- コピー量 プロファイリングにより、Python/ライブラリ境界をまたぐ際に発生する意図しないコピー(例:
numpy 配列が誤ってPython配列に変換される場合など)を容易に発見できる
- その他の機能
--reduced-profile オプションにより、CPUの1%以上を消費するか、少なくとも100回以上の割り当てを行う行のみを報告する 縮小プロファイル を生成可能
@profile デコレータをサポートし、特定の関数のみをプロファイリングできる
- バックグラウンドで実行されるプログラム(
& によって実行)のプロファイリングを 一時停止および再開 できる
2件のコメント
Nsight と比べて軽量で便利に使えそうなので、使ってみてレビューを残します! ご紹介ありがとうございます。
「いいね」していただけるとありがたいです。こういうニュースを投稿しながら、どれくらいの方が見てくださっているのか気になることがあるので。笑