このブログでは、pprof を使用して CPU プロファイルを実行する方法について詳しく説明しています。プロファイリング時に、main
pprof がサンプルをスタック フレームの下部 100 に切り詰めるため、サンプルから次のような関数が消える場合があります。これは文書化されています:
実際、main.FindLoops と main.main の合計は 100% であるはずですが、各スタック サンプルには下位 100 スタック フレームしか含まれていません。サンプルの約 4 分の 1 で、再帰的な main.DFS 関数が main.main よりも 100 フレーム以上深いため、トレース全体が切り捨てられました。
問題は、プロファイルしたい特定の機能があることです。サンプラーは、5% の確率で表示されると報告していますが、それは正確ではないことがわかっています。切り捨てにより、スタック上のそのフレームが失われたに違いありません。
特定の関数をプロファイリングし、スタック フレーム サンプルから決して切り捨てない方法はありますか? その真の CPU プロファイルを 100% から知りたいです。