DUICUO

Bloomberg はオープンソースの Python メモリ プロファイラー Memray をリリースしました。

Memrayは、Bloombergが開発し、オープンソース化されたメモリプロファイラです。ネイティブ拡張とPythonインタプリタ自体を含むPythonコード内のメモリ割り当てを追跡できます。メモリプロファイリングは、プログラムがどのようにメモリを使用しているかを理解するための強力なツールであり、メモリリークの検出や、プログラムのどの部分が最もメモリを消費しているかを特定するのに役立ちます。

py-spyのようなサンプリングメモリプロファイラと比較して、MemrayはC/C++ライブラリの呼び出しを含むすべての関数呼び出しをトレースし、詳細なコールスタックを表示できます。Bloombergによると、これはパフォーマンスを犠牲にすることなく、プロファイリングによってコード解釈がわずかに遅くなる程度です。ただし、ネイティブコードプロファイリングは遅いため、直接有効化する必要があります。

Memray は、取得したメモリ消費データに基づいて、最も一般的なコード パスを迅速かつ正確に識別するのに役立つフレーム グラフなどのさまざまなレポートを生成できます。

EgdeDBの共同創設者兼CEOであるユーリ・セリバノフ氏によると、このツールはこれまで得られなかったPythonアプリケーションの洞察を提供します。Memrayは、コマンドラインからPythonアプリケーションを実行し、プロファイリングすることができます。

 $ python3 -m memray run -o 出力.bin my_script.py   
$ python3 - m memray フレームグラフ出力.bin

pytest-memray を使って Memray をテストスイートに統合することもできます。また、`-native` コマンドラインオプションを使ってすべての C/C++ 呼び出しをプロファイリングしたり、`-live` コマンドラインオプションを使ってプログラム実行中にメモリ割り当てをリアルタイムで解析したりすることも可能です。Memray は Linux x86/64 システムに `python3 -m pip install memray` でインストールできます。