インテル® VTune™ コマンドラインを使用してエンクレーブ内のホットスポットをキャプチャーする方法
- インテル® VTune™ プロファイラーを以下で実行しました。
$ export INTEL_LIBITTNOTIFY64=/opt/intel/oneapi/vtune/latest/lib64/runtime/libittnotify_collector.so
$ ./vtune -collect sgx-hotspots -collect-with runss -target-pid - エンクレーブ機能は、インテル® VTune™ プロファイラーの概要レポートに表示されません。
エンクレーブは、非対応アプリケーションで静的共有ライブラリーとしてコンパイルされ、アプリケーションのプロセス内で個別のスレッドとして実行されます。インテルのホットスポット・レポート® VTune™は、最も多くのリソースの実行または使用に最も時間がかかるアプリケーション全体の機能を示します。エンクレーブは一般的に設計上軽量であるため、エンクレーブ機能が表示されない場合があります。アプリケーションのその他の機能は、実行に多くの CPU サイクルがかかるため、ホットスポット・レポートに表示されます。
- インテル® VTune™・コマンド・ラインのsgx-Hotspots 解析タイプを使用して、エンクレーブをプロファイルします。
- 高速なエンクレーブ機能をキャプチャーするには、sampling-interval knobを使用してサンプリング間隔を短縮します。
$ vtune -collect sgx-hotspots -knob sampling-interval=.01 ./app - コマンドラインからのみインテル® VTune™を使用している場合は、次の手順を実行して、さまざまなレポートのコンマ区切り値 (CSV) バージョンを 生成 します。
$ vtune -report -format=csv - vtune -help reportを使用して、利用可能なレポート名 (callstacks、ホットスポット、トップダウンなど) を検索します。
- エンクレーブからのデータのみを表示するには、 次を実行します。
$ vtune -report hotspots -format=csv -filter module=enclave.signed.so