Intel® VTune™ Amplifier 2014 for Systems поддерживает анализ функций Java и доступ к ассемблеру с JIT, Java Source и Dex* для функций, обработанных с помощью JIT на рутованных устройствах Android*, на которых запущена виртуальная машина Java/Dalvik* с оснасткой. Прочтите эту статью позже, чтобы узнать, как запустить будущую версию VTune Amplifier for Systems для включения анализа Java на ART* JVM.
Если возникают следующие проблемы:
- После сбора - time(samples) связано с функцией/модулем: [dalvik-jit-code-cache (удалено)] в "Basic Hotspots"
- После сбора - time(samples) связано с функцией/модулем: [Вне любых известных модулей] в разделе "Advanced Hotspots"или в любых других типах выборки на основе событий оборудования
- Функция Java связана с ассемблером (или с чем-то посторонним), —
то, по всей вероятности, нужно заново настроить устройство Android, чтобы компонент VTune Amplifier мог работать с кодом Java. Необходимы следующие 4 компонента:
- Рутованное устройство Android
- Dalvik JVM с оснасткой VTune Amplifier
- Запустите виртуальную машину Dalvik с включенной оснасткой
- Выполните анализ в VTune Amplifier и укажите процессы для просмотра сведений о Java.
Для получения дополнительных сведений см:
Руководство пользователя Intel® VTune™ Amplifier› Запуск удаленного анализа› Подготовка целевой системы Android* для удаленного анализа
1) Устройство Android с корневым доступом
Убедитесь, что возможен рутовый доступ к устройству. Выполните следующую команду на подключенной системе с adb.
adb root
Если вы получите сообщение:
adbd is already running as root
или
restarting adbd as root
то устройство рутовано. Отладочные и инженерные образы ОС Android обычно с легкостью рутуются. Рутовый доступ к пользовательским образам обычно не удается получить. Для получения широкодоступного устройства с возможностью рутования см. http://www.intel.com/mdk или http://01.org/android-ia.
2) Получение Dalvik JVM с оснасткой VTune Amplifier
Многие устройства Android с процессорами Intel® Atom поставляются с ядром Dalvik с подключенной оснасткой. Некоторые исключения, заслуживающие упоминания:
- Intel® Mobile Development Kit для Android http://software.intel.com/mdk
- ОС Android предоставляется по адресу http://01.org/android-ia
Определение наличия оснастки Dalvik на вашем устройстве
Выполните команду:
adb shell dalvikvm -get Help
найдите –Xjitvtuneinfo
в списке возможных параметров.
Если этот параметр отсутствует, поддержка оснастки для VTune отсутствует в системе Dalvik на устройстве, и его нужно заменить.
Замена libdvm.so на вашем устройстве
Intel VTune Amplifier 2014 for Systems, обновление 1, содержит версию libdvm.so с оснасткой в папке <path-to-vtune>/target/android_v3.10/prebuilt//DellVeune8. Для установки выполните следующие команды:
adb root
adb remount
adb push <path-to-vtune>/target/android_v3.10/prebuilt/DellVeune8/libdvm.so /system/lib
adb reboot
3) Запустите виртуальную машину Dalvik с включенной оснасткой VTune Amplifier
VTune Amplfier 2014 for Systems по умолчанию настраивает ВМ Dalvik для оснастки в следующих случаях:
При создании нового проекта в пользовательском интерфейсе, выбрав в качестве системы назначения устройство Android (ADB), затем в первый раз запустите сбор на этом устройстве. При этом оснастка будет переведена в режим JIT. Это дает вам возможность отслеживать все функции в графическом пользовательском интерфейсе, но при попытке открытия конкретных функций будет открыт ассемблер (а не исходный код Java и не байтовый код Dex).
Для изменения значений по умолчанию нужно вручную запустить установщик с основного устройства:
Linux: <путь к vtune>/bin[32|64]/amplxe-androidreg.sh --package-command=install --xjitvtuneinfo=src
Windows: <путь к vtune>\bin32\amplxe-androidreg.bat --package-command=install --xjitvtuneinfo=src
Где --xjitvtuneinfo=src
может иметь одно из следующих значений:
- Основные сведения о скомпилированной трассировке:
-Xjitvtuneinfo=jit
- Сопоставление от кода JIT к исходному коду Java и базовая информация о скомпилированной трассировке:
-Xjitvtuneinfo=src
- Сопоставление от кода JIT к коду DEX и базовая информация о скомпилированной трассировке:
-Xjitvtuneinfo=dex
- Сбор данных JIT. По умолчанию сбор данных JIT отключен, если не указать никакие параметры:
-Xjitvtuneinfo=none
По умолчанию установщик изменит /data/local.prop следующим образом, чтобы включить JVM для VTune при всех последующих перезагрузках ОС.
root@android:/ # cat /data/local.prop
dalvik.vm.extra-opts=-Xjitvtuneinfo:src
Для Dell Venue 8 и устройств, которые не могут использовать /data/local.prop, следующая процедура сработает с главного устройства.
adb shell setprop dalvik.vm.extra-opts -Xjitvtuneinfo:src
Установите для свойства значение src, dex, jit или none
adb shell stop
adb shell start
Не перезагружайте устройство. Убедитесь, что это свойство задано, с помощью adb shell getprop
. Выходные данные должны содержать [dalvik.vm.extra-opts]: [-Xjitvtuneinfo:src]
4) Выполните анализ в VTune Amplifier и укажите процессы для просмотра сведений о Java
VTune Amplifier может связывать выборки с кодом JIT с помощью всех доступных типов анализа, но требуется заключительный шаг. Необходимо запустить анализ для проекта с помощью Attach to Process или Launch Android Package. При этом будут получены только те JIT-файлы, которые были указаны в параметрах проекта.
Для двух типов анализа в VTune Amplifier может потребоваться вручную поместить JIT-файлы в папку результатов: если в свойствах проекта вы указали Profile System либо если вы указали Analyze System-Wide для Attach to Process или Launch Android Package в разделе Advanced Settings. Затем можно просмотреть JIT-файлы для нужных процессов, которые не были указаны. См.: Руководство пользователя Intel® VTune™ Amplifier› Поддержка интерфейса командной строки› Выполнение анализа из командной строкидля получения дополнительных сведений.