iOSアプリ向けのアプリ内デバッグツールキット。フローティングメニューからネットワーク通信、パフォーマンス、ビュー、ログ、アプリデータを確認できます。
bloomberg/memray
Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。
- スター
- 15,389
- フォーク
- 480
- 未解決の Issue
- 37
- 最終コミット
- 一昨日
これは何?
MemrayはPython用のメモリプロファイラーです。Pythonコード、ネイティブのC/C++拡張モジュール、Pythonインタープリター自体によるメモリ割り当てを記録し、取得したデータからフレームグラフ、テーブル、ツリー、ターミナル向けサマリーなどのレポートを生成します。通常はコマンドラインツールとして`memray run`で実行しますが、Trackerコンテキストマネージャーを使ってライブラリとして利用することもできます。
サンプリング型のプロファイラーとは異なり、Memrayはすべての関数呼び出しをトレースするため、コールスタックを正確に記録できます。ネイティブトラッキングは`--native`で有効にでき、結果にC/C++のスタックフレームを追加します。numpyやpandasなどの拡張モジュールを使っている場合に役立ちます。ライブモードではプログラムの実行中にターミナル上で割り当てを確認でき、attachを使えばすでに実行中のプロセスのトラッキングを開始できます。
Memrayは、メモリ使用量が多い原因となっているコードの特定、メモリリークの発見、大量のメモリを割り当てるホットスポットの特定といった、一般的なメモリ問題の調査を目的としています。Pythonのスレッドとネイティブスレッドに対応しています。動作環境はLinuxとmacOSのみで、Python 3.9以降が必要です。pytestプラグインのpytest-memrayは別プロジェクトとして提供されています。
主な機能
- 01サンプリング型のプロファイラーとは異なり、すべての関数呼び出しをトレースして正確なコールスタックを記録
- 02`--native`を指定してPythonコードとネイティブC/C++拡張のメモリ割り当てを追跡
- 03フレームグラフ、HTMLテーブル、ターミナル向けのツリーやサマリーを生成
- 04プログラムの実行中にメモリ割り当てを調べられるライブターミナルインターフェース
- 05すでに実行中のPythonプロセスにアタッチ可能
- 06Trackerコンテキストマネージャーを介してPythonライブラリとして利用可能
ユースケース
- Pythonのサービスやスクリプトでメモリ使用量が多い原因を特定する
- 長時間稼働するアプリケーションでメモリリークを見つける
- 大量のメモリを割り当てるコードのホットスポットを特定する
- numpyやpandasなどのC拡張に依存するPythonプログラムをプロファイリングする
クイックスタート
- 1
pipでPyPIからMemrayをインストールします
python3 -m pip install memray - 2
プロファイラーでスクリプトを実行し、メモリ割り当てを記録します
python3 -m memray run my_script.py - 3
結果ファイルからHTML形式のフレームグラフを生成します
memray flamegraph memray-my_script.py.2369.bin
使う前に知っておきたいこと
- LinuxとmacOSでのみ動作し、Windowsにはインストールできません。
- ソースからビルドするには、libunwind、lz4、libdebuginfodなどのシステムライブラリが必要です。
トピック
よくある質問
- memray とは?
- Pythonコード、ネイティブ拡張、インタープリターのメモリ割り当てを追跡し、複数形式のレポートを生成するPython用メモリプロファイラーです。 MemrayはPython用のメモリプロファイラーです。Pythonコード、ネイティブのC/C++拡張モジュール、Pythonインタープリター自体によるメモリ割り当てを記録し、取得したデータからフレームグラフ、テーブル、ツリー、ターミナル向けサマリーなどのレポートを生成します。通常はコマンドラインツールとして`memray run`で実行しますが、Trackerコンテキストマネージャーを使ってライブラリとして利用することもできます。
- memray は無料で使えますか?ライセンスは?
- memray は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- memray は今もメンテナンスされていますか?
- 活発にメンテナンス中。memray の最終コミットは 2026年10月19日 です。
- memray は何に使えますか?
- Pythonのサービスやスクリプトでメモリ使用量が多い原因を特定する 長時間稼働するアプリケーションでメモリリークを見つける 大量のメモリを割り当てるコードのホットスポットを特定する numpyやpandasなどのC拡張に依存するPythonプログラムをプロファイリングする
- memray のインストール方法は?
- pipでPyPIからMemrayをインストールします: python3 -m pip install memray プロファイラーでスクリプトを実行し、メモリ割り当てを記録します: python3 -m memray run my_script.py 結果ファイルからHTML形式のフレームグラフを生成します: memray flamegraph memray-my_script.py.2369.bin
- memray はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/bloomberg/memray
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PEP 621とPEP 517のメタデータに基づいて、仮想環境、ロックファイル、ビルドを管理する最新のPythonパッケージ・依存関係管理ツール。
ローカルで動作し、操作性とプライバシーを重視するオープンソースのホームオートメーションプラットフォーム。Raspberry Piやローカルサーバーで動かせます。
会話履歴をそのまま保存し、セマンティック検索で取得するローカルファーストのAIメモリシステム。MCPサーバーとCLIを提供します。
Chrome DevToolsを使って、コーディングエージェントが実行中のChromeブラウザーを操作・調査し、デバッグやパフォーマンス分析を行えるMCPサーバー。
HTTP/1、HTTP/2、WebSocketの通信を調査できる、コンソール・コマンドライン・Webインターフェースを備えたTLS対応の対話型HTTPプロキシ。