序文
あなたはJava言語の開発から転送されたPythonの開発者であれば、その開発効率を喜ぶかもしれない多くのことを改善しましたが、たとえば、あなたがjmapは、jstack欠場する、痛み、および運用環境で作られた他のツールがありますperfomance tuning
。私は前に使用しているGDB
、PyRasite
、PyFlame
および他のツール、特にツールGDBシリーズは、かなり面倒なスタート。:ここでは、ツールをお勧めしますPY-スパイを。
公式の説明を引用:
PY-スパイプログラムはPythonの試料分析装置です。それはあなたがプログラムを再起動するか、どのような方法で、プロジェクトのコードを変更することなく、全体の方法を監視し、より多くの時間を過ごすためにする領域を視覚化するPythonプログラムを表示することができます。PY-スパイのオーバーヘッドは非常に低いです:それは錆、スピードで書かれており、コンパイル済みのPythonプログラムは、同じプロセスで実行されていません。これは、PY-スパイが安全にPythonアプリケーションのチューニングは、本番環境を生成、分析に使用できることを意味します。
インストール
pip install py-spy
錆あなたが開発者であれば、あなたもインストールするには、次のコマンドを使用することができます。
cargo install py-spy
使用
PY-スパイプログラムは、既存の実行を分析(PIDを提供する)またはスクリプトを指定することができます。次のように:
py-spy --pid 12345
# 或者
py-spy -- python myprogram.py
topコマンドに似て出力:
また、出力性能の最適化マスターブランドングレッグリリース可視化図を生成することができFlameGraphsを。
コマンド:
py-spy --flame profile.svg --pid 12345
# 或者
py-spy --flame profile.svg -- python myprogram.py
次のように出力されます。
どのようにPY-スパイ作品
Linux上でprocess_vm_readvシステムを使用してPY-スパイは、OSXの呼び出しでvm_read、呼び出しやReadProcessMemoryメモリを呼び出すWindows上のデータを直接Pythonのサンプル分析プログラムをお読みください。