問題タブ [guppy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - guppy が報告するメモリ使用量は ps コマンドとは異なります
ねじれたサーバーのプロファイルを作成しています。予想以上にメモリを消費します。そのメモリ使用量は、時間の経過とともに増加します。
ご覧のとおり、コストは102176 KB、つまり99.78125 MBです。そして、ねじれたマンホールから guppy を使用して、メモリ使用プロファイルを監視します。
うーん...何か問題があるようです。Guppy は、メモリの合計使用量が 10096636 バイト、つまり9859.996 KBまたは9.628 MBであることを示しています。
それは大きな違いです。この奇妙な結果の何が問題なのですか? 私は何を間違っていますか?
更新:
昨夜、監視スクリプトを書きました。メモリ使用量とオンライン ユーザー数を記録します。これはラジオ サーバーなので、ラジオと総リスナーが存在することがわかります。これが私がmatplotlibによって生成した図です。
何かがおかしい。このように、ps によって表示されるメモリ使用量が非常に低い場合があります。
メモリ使用量の値が非常に低い理由は何ですか? さらに、オンライン ラジオやリスナーがいなくても、メモリ使用量は依然として高いままです。
python - IPython セッション中のメモリ内のオブジェクトのサイズ (Guppy を使用?)
Python でオブジェクトの正確なメモリ使用量を特定するのは難しいと読んだことを思い出します。ただし、そのスレッドは 2009 年のものであり、それ以来、Python のさまざまなメモリ プロファイラーについて読んできました (このスレッドの例を参照してください)。また、IPython はここ数か月で大幅に成熟しました (バージョン 1.0 は数日前にリリースされました)。
IPython には whos
、変数名、その型、およびいくつかの基本的なデータ/情報を出力する というマジックが既にあります。
同様に、によって返される各オブジェクトのメモリ内のサイズを取得する方法はありますwho
か? この目的のために既に IPython で利用できるユーティリティはありますか?
グッピーを使う
Guppy (このスレッド で推奨) には、オブジェクト タイプごとの累積メモリ使用量を取得できるコマンドがありますが、残念ながら:
- オブジェクトごとのメモリ使用量は表示されません
- サイズをバイト単位で出力します(人間が読める形式ではありません)
2 つ目については、この回答bytes2human
から適用できる可能性がありますが、最初に解析可能な形式で出力を収集する必要があります。h.heap()
しかし、最初のもの (最も重要なもの) について、Guppy にオブジェクトごとのメモリ使用量を表示させる方法はありますか?
python - Guppy から現在のメモリ使用量を取得する簡単な方法
tl/dr: Guppy を使用して Python プログラムの現在のメモリ使用量を取得するにはどうすればよいですか? 簡単なコマンドはありますか?
guppy を使用して Python プログラムのメモリ使用量を追跡しようとしています。これは guppy を初めて使用するため、どのように動作するかよくわかりません。私が欲しいのは、シミュレーションで「時間」が進むにつれて合計使用量をプロットできるようにすることです。これは、私ができることの基本的なコードです。
しかし、現在のサイズ (12530016 バイト) を知りたいだけです。h.total()
だから私は合計サイズを取得するようなものを呼び出すことができるようにしたいと思います. これが単純なコマンドとして存在しないとしたらショックですが、これまでのところ、ドキュメントを調べても見つかりませんでした。おそらく文書化されていますが、私が探している場所ではありません。
python - グラフをプロットできません: プロットには matplotlib が必要です
*.dat ファイルを生成できます。
しかし、グラフをプロットしようとすると、「プロットにはmatplotlibが必要です」と表示されます
何か見逃しましたか?
私がプロファイリングしている関数は、内部にある run() です: file_to_be_profiled.py
そして、テスト スクリプト test_sl.py から run() を呼び出しています。
私はubuntuマシンで実行しています。しかし、 apt-get install はうまくいきませんでした。次に、ソースからインストールを行いました。しかし、その後も同じエラーが発生します。
apt-get に失敗しました:
次に、 pip install を試みました...これも失敗しました:
最後に、成功したと思われるソースからインストールしてみました:
しかし、グラフをプロットしようとすると、元の問題に遭遇しました。
apt-get update を正常に実行できました (ファイアウォールの問題があり、正常に実行できました: sudo apt-get install -y python-matplotlib.
しかし、mprof の実行中にまだ問題が発生しています。
なぜディスプレイを設定する必要があるのですか? 私はubuntuがホストするマシンで作業しています。