プロファイラの種類
XRay のインテグレーションを使用した ClickHouse のプロファイリング
sleepForNanoseconds 関数をプロファイリングしたいとします。これは、実行にどれくらい時間がかかるかを確認するのに
便利な関数です。
XRay を使用したネイティブアプリケーションのプロファイリング
コードをインストルメントする
- コードをインストルメントするには
-fxray-instrumentが必要です。 -fxray-instruction-threshold=1は、この例のように 非常に小さい関数であっても、すべての関数をインストルメントするために使用します。デフォルトでは、命令数が少なくとも 200 の 関数がインストルメントされます。
適切な環境変数の値を設定してプロセスを実行し、トレースを収集する
XRAY_OPTIONS にさまざまな値を設定することで、
プロファイラがいつ収集を開始するか、またどのように収集するかを構成できます。
トレースを変換する
trace_event フォーマットは、パースしやすく、
すでに対応しているツールもいくつかあるため、ここではこれを使用します:
トレースを可視化する
時系列順
左側に偏る
サンドイッチ
ドキュメントを確認する
- SYSTEM INSTRUMENT — インストルメンテーションポイントを追加 または削除します。
- system.instrumentation — インストルメントされたポイントを確認します。
- system.symbols — インストルメンテーションポイントを追加するための シンボルを確認します。
- system.trace_log — インストルメンテーションポイントを使用して収集されたデータを確認します。
- XRay Instrumentation
- 詳細については、Debugging with XRay のドキュメントを参照してください。