
perf を使用してパフォーマンス プロファイリングを実行すると、通常は次のように動作します。
perf record -g -F99 $BINARY_NAME
完了すると、コマンドは次のように表示されます。
[ perf record: Captured and wrote 0.006 MB output.data (37 samples) ]
そして、 を使用してキャプチャされたスタック トレースを読み取ることができますperf script
。
ただし、私のプログラムは非同期ネットワークを実行しており、接続先のサーバーがオフラインの場合 (私のプログラムは「ホストへのルートがありません (OS エラー 113)」というメッセージを受け取り、それらを処理して再度接続を試行します)、perf コマンドはサンプルを収集できません。
[ perf record: Captured and wrote 0.006 MB output.data ]
で検査するとperf script
何も出力されません。サーバーがオンラインの場合は正常に動作します。
私のプログラムは Rust で書かれたネイティブ バイナリです。なぜこのようなことが起こるのか、何か考えはありますか?