gperftoolsの仕組みの簡単な説明を探しています。これまでのところ、これは私が学んだことです:
- 世界を止めるサンプラーを実行します。つまり、プロファイリング中のプログラムを定期的に停止して、情報を収集します。
- Golang の pprof ライブラリは、その下で gperftools を使用します。
一般的な概要に加えて、いくつかの具体的な質問にお答えください。
- gperftools は「イベント ベースのプロファイラー」または「インストルメンテーション プロファイラー」ですか。私が理解していることから、これらのプロファイラーはプログラムの実行方法を変更し、それらの変更を介してサンプルを収集します
- OS のどの「レベル」で gperftools がプロファイリングしますか? SystemTapやperfのようにカーネルをプロファイリングしますか?
- 高トラフィックの運用サーバーで gperftools を安全に実行できますか?
この質問は、Go サーバーで pprof を使用することによって発生するオーバーヘッドについて考えさせるために行っています。