問題タブ [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.
profiling - ヒープ プロファイリングを使用した google-perftools/pprof の形式
google-perftools パッケージに pprof ユーティリティがあります。https://github.com/gperftools/gperftools/tree/master/doc/pprof-test-big.gifや https://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 つの形式の違いに興味がありました。
go - Goプログラムでpprofを使用する方法
Goプログラムでpprofを使用する方法は?
net / http / pprofという名前のGoパッケージがありますが、使用できません。
ドキュメントにはgo tool pprof http://localhost:6060/debug/pprof/heap
、これは機能しないと書かれています。
そして、以下の_はどういう意味ですか?
import _ "net/http/pprof"
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 は複数のプロファイルを使用できます。
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 の両方でテストしました。
go - golang メモリ爆発: newdefer
ログ トラフィックを udp でリッスンし、解析を試みてから Redis に挿入するプログラムがあります。特定のレベルのトラフィックでは、メモリが「爆発」しているように見えます (数百メガバイトからギガバイトに急速に増加します。
これが発生した直後にヒープ プロファイルを取得したところ、次のように返されました。
プログラムが「健全」な場合、プロファイルは次のようになります。
私のコードにある唯一の遅延は、解析関数を囲むことです (頻繁に失敗する可能性があるため):
メモリが突然膨張する原因となる明らかな間違ったことを誰かが見ていますか? それとも、それを特定するための方向性を提供しますか?
編集 (logrow.Record チャネルに関するその他のコード):
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 ファイルが生成されるのは正常ですか?
どうもありがとう
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 で動作します)
go - go プログラムのプロファイリング時にサンプルレートを上げることはできますか?
go ルーチンを使用してほとんどのコードを並列に実行する go の小さなプログラムがあります。go プログラムのプロファイリングに関するブログで説明されているように CPU プロファイリングを開始しますが、データを見ると 3 ~ 5 サンプルしか表示されません (プログラムの実際の実行時間は数秒です)。サンプルレートを上げる方法はありますか?グーグルで検索してみましたが、何も見つかりませんでした...
google-perftools - google-perftools ヒープ プロファイラーのスタック トレースにシンボルを表示する方法
TDD 環境で google-perftools ヒープ プロファイラーを使用しています。最後に、pprof を使用してホット スポットを確認できるヒープ ダンプを取得します。シンボルは表示されますが、スタック内でどのようにリークが発生したかについての情報はほとんどまたはまったく提供されません。実際、私が見ることができる出力には組織がまったくありません。
最大のリークのスタック トレースは実行時に表示されますが、シンボルは表示されません。PPROF_PATH 環境変数を正しく設定していますが、効果がありません。どうすればこれを有効にできますか?
go - golang - net/http/pprof が機能しない
私は顧客のhttpサービスを持っています:
それは動作しません:
戻りエラー:
ありがとう。
編集: 問題は、デフォルトの http サーバーを書き直し、net/http/pprof パッケージに http ハンドラーを挿入することだと思います。
私のコードではハンドラーが機能しません。