問題タブ [pprof]

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.

0 投票する
1 に答える
2411 参照

profiling - ヒープ プロファイリングを使用した google-perftools/pprof の形式

google-perftools パッケージに pprof ユーティリティがあります。https://github.com/gperftools/gperftools/tree/master/doc/pprof-test-big.gifhttps://githubのように、google-perftools cpuprofiler と heapprofiler のプロファイル ファイルを美しい画像に変換するユーティリティです。.com/gperftools/gperftools/tree/master/doc/heap-example1.png

cpu プロファイルの pprof の入力ファイルの形式は、https ://github.com/gperftools/gperftools/tree/master/doc/cpuprofile-fileformat.html で説明されています。

ただし、heap profile入力ファイルの形式は svn に記述されていません。

「ヒープロファイリング」形式とは何ですか? また、コードからそのようなファイルを生成するにはどうすればよいですか? 私はすでに cpuprofiler 形式を生成できるので、2 つの形式の違いに興味がありました。

0 投票する
2 に答える
19195 参照

go - Goプログラムでpprofを使用する方法

Goプログラムでpprofを使用する方法は?

net / http / pprofという名前のGoパッケージがありますが、使用できません。

ドキュメントにはgo tool pprof http://localhost:6060/debug/pprof/heap、これは機能しないと書かれています。

そして、以下の_はどういう意味ですか?

import _ "net/http/pprof"

0 投票する
0 に答える
895 参照

profiling - 複数の google-pprof ファイルを組み合わせる (pproc CPU プロファイラー)

ここで説明されている google-perftools (gperftools の libprofiler.so ) の CPU Profiler を使用したい: http://gperftools.googlecode.com/svn/trunk/doc/cpuprofile.html

私のセットアップでは、プロファイリングするプログラムを数回実行して (最大 1500 回、実行ごとに異なります)、すべての実行 (または実行の一部のサブセット) からの pprof 出力を単一の pprof ファイルに結合します。

これどうやってするの?

PS: 私のプログラムは共有ライブラリをほとんど使用しないため、単一のバイナリ (elf) ファイルのみが分析されます。

PPS: Chris のおかげで、pprof は複数のプロファイルを使用できます。

0 投票する
1 に答える
3132 参照

go - golangヒーププロファイルの「合計MB」がトップの「RES」よりも少ないのはなぜですか?

実行時に6〜7Gのメモリを使用するgoで書かれたサービスがあります(上部のRES)。そこで、問題がどこにあるかを把握するために pprof ツールを使用しました。

しかし、結果には約1〜2Gのメモリしかありません(pdfの「合計MB」)。残りはどこ?

そして、GOGC=off でサービスのプロファイリングを試みた結果、「Total MB」は上部の「RES」とまったく同じになりました。メモリはGCされているようですが、カーネルに戻されていないため、プロファイルされません。

何か案が?

PS、1.0.3 と 1.1rc3 の両方でテストしました。

0 投票する
1 に答える
1085 参照

go - golang メモリ爆発: newdefer

ログ トラフィックを udp でリッスンし、解析を試みてから Redis に挿入するプログラムがあります。特定のレベルのトラフィックでは、メモリが「爆発」しているように見えます (数百メガバイトからギガバイトに急速に増加します。

これが発生した直後にヒープ プロファイルを取得したところ、次のように返されました。

プログラムが「健全」な場合、プロファイルは次のようになります。

私のコードにある唯一の遅延は、解析関数を囲むことです (頻繁に失敗する可能性があるため):

メモリが突然膨張する原因となる明らかな間違ったことを誰かが見ていますか? それとも、それを特定するための方向性を提供しますか?

編集 (logrow.Record チャネルに関するその他のコード):

0 投票する
2 に答える
8711 参照

memory-leaks - Go(lang):PPROFヒーププロファイルを使用してメモリリークを見つける方法は?

pprof を使用してメモリ リークを検証しようとしています。

次の場所にあるヒーププロファイルの読み方を説明できますか? http://localhost:6060/debug/pprof/heap?debug=1

また、web起動後にコマンドを入力go tool pprof http://localhost:6060/debug/pprof/heapすると、空の .svg ファイルが生成されるのは正常ですか?

どうもありがとう

0 投票する
2 に答える
2008 参照

go - go pprof ですべてのメソッドが表示されない

アプリケーションのプロファイリングに go pprof を使用しています。次のチュートリアルに従いました - http://saml.rilspace.org/profiling-and-creating-call-graphs-for-go-programs-with-go-tool-pprof

そして、私のプロファイリングの "--text" 結果は -

合計: 48 サンプル 48 100.0% 100.0% 48 100.0% runtime.mach_semaphore_wait 0 0.0% 100.0% 48 100.0% システム

アプリケーションの完全なプロファイリング結果を取得するにはどうすればよいですか? (通常、私のアプリケーションは go-imap と json で動作します)

0 投票する
1 に答える
1990 参照

go - go プログラムのプロファイリング時にサンプルレートを上げることはできますか?

go ルーチンを使用してほとんどのコードを並列に実行する go の小さなプログラムがあります。go プログラムのプロファイリングに関するブログで説明されているように CPU プロファイリングを開始しますが、データを見ると 3 ~ 5 サンプルしか表示されません (プログラムの実際の実行時間は数秒です)。サンプルレートを上げる方法はありますか?グーグルで検索してみましたが、何も見つかりませんでした...

0 投票する
0 に答える
891 参照

google-perftools - google-perftools ヒープ プロファイラーのスタック トレースにシンボルを表示する方法

TDD 環境で google-perftools ヒープ プロファイラーを使用しています。最後に、pprof を使用してホット スポットを確認できるヒープ ダンプを取得します。シンボルは表示されますが、スタック内でどのようにリークが発生したかについての情報はほとんどまたはまったく提供されません。実際、私が見ることができる出力には組織がまったくありません。

最大のリークのスタック トレースは実行時に表示されますが、シンボルは表示されません。PPROF_PATH 環境変数を正しく設定していますが、効果がありません。どうすればこれを有効にできますか?

0 投票する
1 に答える
4485 参照

go - golang - net/http/pprof が機能しない

私は顧客のhttpサービスを持っています:

それは動作しません:

戻りエラー:

ありがとう。

編集: 問題は、デフォルトの http サーバーを書き直し、net/http/pprof パッケージに http ハンドラーを挿入することだと思います。

私のコードではハンドラーが機能しません。