Android* システムでインテル® VTune™ プロファイラーの Java* 解析を有効にするのに必要な設定を調べます。
デフォルトでは、インテル® VTune™ プロファイラーは、--jitvtuneinfo=src オプションを使用して、ターゲットのルート化された Android* デバイスにリモートコレクターをインストールします。ルート化されたデバイスの Java* プロファイル・オプションを変更するには、amplxe-androidreg.bat (Windows*) または amplxe-androidreg.sh (Linux*) で、--jitvtuneinfo=[jit|src|dex|none] オプションを使用して手動で再インストールする必要があります。次に例を示します:
Windows*:
<install-dir >\bin32\amplxe-androidreg.bat --package-command=install --jitvtuneinfo=src
Linux*:
<install-dir >/bin{32,64}/amplxe-androidreg.sh --package-command=install --jitvtuneinfo=src
インテル® VTune™ プロファイラー は、/data/local.prop ファイルを次のように変更します。
コンパイル済みトレースに関する基本情報:root@android:/# cat /data/local.prop dalvik.vm.extra-opts=-Xjitvtuneinfo:jit
JIT コードから Java* ソースコードへのマッピング、およびコンパイル済みトレースに関する基本情報:root@android:/# cat /data/local.prop dalvik.vm.extra-opts=-Xjitvtuneinfo:src
JIT コードから DEX コードへのマッピング、およびコンパイル済みトレースに関する基本情報:root@android:/# cat /data/local.prop dalvik.vm.extra-opts=-Xjitvtuneinfo:dex
JIT データ収集。オプションを指定しないと、デフォルトで JIT 収集は無効になります:root@android:/# cat /data/local.prop dalvik.vm.extra-opts=-Xjitvtuneinfo:none
さらに、Dalvik* JVM* が命令スケジュールをサポートする場合、dalvik.vm.extra-opts の最後に -Xnoscheduling を追加して無効にします。次に例を示します:
root@android:/# cat /data/local.prop dalvik.vm.extra-opts=-Xjitvtuneinfo:src -Xnoscheduling
現在、Java* 解析にはインストルメント済みの Dalvik* JVM* が必要です。第 4 世代インテル® Core™ プロセッサーで動作する Android* システム、または ART と Dalvik* Java* を使用する Android* システムは、JIT プロファイルをサポートするように設計されていません。ここでは、 --jitvtuneinfo=N を指定する必要はありません。
logcat 出力の--generate-debug-infoオプションを見ると (adb logcat *:S dex2oat:I)、コンパイラーはこのオプションを使用しています。
ソースレベルの解析を有効にするには、インテル® VTune™ プロファイラーは解析されたバイナリーファイルのデバッグ情報を必要とします。デフォルトでは、ART コンパイラーは Java* コードのデバッグ情報を生成しません。利用シナリオに応じて、ART コンパイラーがデバッグ情報を生成する方法を選択できます。
Android 6.0 Marshmallow* 以前のリリースでは、次の例の --generate-debug-info オプションを --include-debug-symbols に 置き換える必要があります。
説明 |
実行 |
---|---|
.apk ファイルとしてインストールされているサードパーティー・アプリケーション、またはシステム・アプリケーションをプロファイルします。device.mkファイルに書き込みます。システム・プロパティーの dalvik.vm.dex2oat-flags を --generate-debug-info に設定します。 |
|
プライベート・アプリケーションの事前最適化が有効になっている場合 (device.mk の LOCAL_DEX_PREOPT:=true プロパティーが設定されている場合)、Android* イメージをリビルドして、.apk や .jar ファイルとしてインストールされているすべてのアプリケーションをプロファイルします。 |
|
プライベート・アプリケーションの事前最適化が無効になっている場合 (device.mk の LOCAL_DEX_PREOPT:=false プロパティーが設定されている場合)、Android* イメージをリビルドして、.apk や .jar ファイルとしてインストールされているすべてのアプリケーションをプロファイルします。 |
|
dalvikvm 実行形式ファイルによって実行されるアプリケーションのプロファイル |
コンパイラー・オプション --generate-debug-info の後に -Xcompiler-option を追加します。アプリケーションがまだコンパイルされていないことを確認します。
|
システムとコアクラスをプロファイルします。 注Java* コアクラスが /data/dalvik-cache/ サブ・ディレクトリーにコンパイルされる場合、このアクションは必須です。製造元は異なるディレクトリーに配置することもできます。製造元が /system/framework/x86 にコンパイル済みの boot.oat ファイルを提供する場合、デバッグ情報を使用して再コンパイルできないため、Java* コアクラスは解決できません。 |
システム・プロパティーの dalvik.vm.image-dex2oat-flags を --generate-debug-info に設定して再コンパイルします。
システムクラスがコンパイルされる前にアプリケーションを実行する場合は、別のコンパイラー・オプション -Ximage-compiler-option --generate-debug-info を追加する必要があります。
|