pprof ツールが Golang アプリケーションに対して誤った出力を生成するのはなぜですか?

Barbara Streisand
リリース: 2024-11-01 13:11:29
オリジナル
677 人が閲覧しました

 Why is my pprof tool producing incorrect output for my Golang application?

Golang での pprof ツールの誤動作

pprof ツールは以前は効果的に機能していたにもかかわらず、突然機能が低下し、プロファイリングのターゲットに関係なく誤った出力を生成しました。この問題は CPU とメモリプロファイリングの両方に影響し、プロファイリングされたアプリケーションの複雑さに比べて不釣り合いに不毛なコールグラフが生成されます。

影響を受ける Web アプリケーションは適切に実行されており、何百万ものリクエストを受信し、適切な応答を生成しています。この問題は、macOS Yosemite で数日前に突然表面化し、El Capitan にアップグレードした後も解決しませんでした。

問題のアプリケーションは、「github.com/davecheney/profile」パッケージをインポートし、メイン関数内でプロファイリングを開始します。 「defer profile.Start(profile.MemProfile).Stop()」を通じて。ただし、pprof ツールは、次のように呼び出すと誤動作するようです。

go tool pprof /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof
ログイン後にコピー

この呼び出しでは、プロファイリングされたバイナリが省略されます。これを解決するには、次のようにツールを呼び出す必要があります:

go tool pprof ./orig /var/folders/26/2sj70_sn72l_93j7tf6r07gr0000gn/T/profile614358295/mem.pprof
ログイン後にコピー

ここで、「orig」はプロファイリングを有効にしてビルドされたバイナリを表します。この変更により、pprof ツールは以前の機能に復元されます。

以上がpprof ツールが Golang アプリケーションに対して誤った出力を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!