Memray: Python用メモリプロファイラ
MemrayはBloombergが開発したPython用のメモリプロファイラです。Pythonアプリケーションのメモリ使用状況を詳細に追跡・分析でき、メモリリークの特定やメモリ消費の最適化に役立ちます。様々な可視化ツールと統合されたレポート機能を備えています。
背景メモ
MemrayはBloomberg(ブルームバーグ)が開発・公開した、Pythonプログラムのメモリ(使用量)を可視化・解析するオープンソースツール。
- Pythonは一般的に自動メモリ管理(ガベージコレクション)を行うが、大規模処理や長時間稼働するアプリで予想外のメモリ消費が起きやすい。「このコードのどの行がメモリを食っているのか」を特定するツールは意外と少ない。
- MemrayはC言語で書かれたトレーサーをPython実行時にアタッチし、関数ごと・行ごとのメモリ割り当てを追跡。結果をフレームグラフ(視覚的なボトルネック図)や火焰グラフ、テーブルなど複数の形式で出力できる。
- Bloomberg社内で金融取引システムのメモリ最適化のために開発され、2022年にApache 2.0ライセンスで公開。LinuxとmacOSで動作し、Python 3.7以降をサポート。
- 類似ツール(`memory_profiler`や`tracemalloc`)より高速で詳細な情報を得られる点が評価され、Pythonエコシステムの標準的なプロファイリングツールの一つになりつつある。