このプロジェクトについて

MemrayはPython向けのメモリプロファイラーとして設計されており、Pythonコード、ネイティブ拡張モジュール(C/C++など)、さらにはPythonインタプリタ自体にわたるメモリ割り当てを追跡します。サンプリングプロファイラーとは異なり、すべての関数呼び出しに対する詳細なコールスタック追跡を提供し、メモリ使用量の正確な帰属を可能にします。CLIとライブラリ両方の使用方法をサポートしており、さまざまなプロファイリングシナリオに対応しています。 主な機能は以下の通りです: - 完全なコールスタック表現を持つすべての関数呼び出しのトレース。 - --nativeフラグを介したPython拡張内のネイティブC/C++コードのプロファイリング(numpy、pandasなど)。 - フラムグラフ(HTML)、テーブル、ツリー表示、ライブターミナルモニタリング、概要、統計など、複数のレポートタイプの生成。 - Pythonスレッドおよびネイティブスレッド(C++拡張からのものなど)のサポート。 - 高速パフォーマンス:プロファイリング中のオーバーヘッドは最小限。スピードと詳細さは--nativeオプションで調整可能。 - pytest-memrayプラグイン経由のpytestとの統合による自動化されたメモリテストと制限。 - ライブモード:長時間実行されるスクリプトのリアルタイムメモリ検査のためのインタラクティブTUI。 - プログラマブルAPI:memray.Tracker()コンテキストマネージャーを使用した特定のコードブロックのプログラムによるプロファイリング。 インストールにはPython 3.9以上が必要で、pipまたはconda経由で入手可能です。Linux x86/x64およびmacOS用のバイナリウェルが提供されています。ソースビルドにはlibunwindやliblz4などのシステム依存関係が必要です。ドキュメントと例はhttps://bloomberg.github.io/memray/にて公開されています。 Memrayは、高メモリ使用量、メモリリーク、割り当てホットスポットの特定を支援します。Windowsやその他のプラットフォームはサポートされていません。本プロジェクトはApache-2.0ライセンスの下で公開されており、DCO署名に従ったコミュニティからの貢献を歓迎しています。