Гугл движется с Далвик на арт(выполнения) для Android.
Я пытался понять, как он собирается улучшить производительность.
Лучшее объяснение я нашел вот такую картинку:
Одним из главных компонентом которых является смена dexopt до dex2oat .
Так как я Дон’т иметь много идей об этих, Может кто-нибудь объяснить разницу и как это улучшит производительность?
40 2014-10-08T10:21:23+00:00 2
JonasCz — Reinstate Monica
Редактировал вопрос 29-го мая 2015 в 6:35
Комментарии к вопросу (2)
Решение / Ответ
JesusFreke
8-го октября 2014 в 5:40
2014-10-08T17:40:11+00:00
Дополнительно
dexopt делает некоторые оптимизации на файл DeX. Он делает такие вещи, как замена виртуального вызова инструкция, оптимизированную версию, которая включает указатель таблицы vtable вызываемого метода, так что это не’т иметь, чтобы выполнить поиск метода во время выполнения.
В результате dexopt такое odex (оптимизированный файл DeX). Это очень похоже на оригинальный файл DeX, за исключением того, что он использует некоторые оптимизированные коды операций, как оптимизация вызова виртуального обучения.
dex2oat на андроиде — что это?
dex2oat берет dex-файл и компилирует его. Результат является, по сути, файл эльф, который затем выполняется нативно. Поэтому вместо того, байт-код, который интерпретируется виртуальной машиной, теперь он имеет собственный код, который может быть выполнен непосредственно процессором. Это называется АОТ (будущее время) компиляции.
Еще один фактор, который следует учитывать, является то, что далвик использовать систему JIT (точно в срок) компилятор — это означает, что он также был в состоянии компиляции байт-кода в машинный код. Однако главное отличие заключается в том, что искусство компилирует все загодя, тогда только далвик составлен подмножество байт-код, используя эвристический анализ для обнаружения кода, который был наиболее часто казнили, и он составлен в процессе выполнения.
JesusFreke
Редактировал ответ 6-го ноября 2017 в 7:33
Комментарии к ответу ( 8 )
Ritesh Jha
Ответ на вопрос
12-го октября 2018 в 4:48
2018-10-12T04:48:18+00:00
Дополнительно
Андроид среды (статья) — это среда запуска приложений, используемых на мобильной операционной системе Android. Искусство заменяет Далвик, который в процессе виртуальной машины изначально используется Android, и осуществляет преобразование приложения’s в байт-кода в машинный инструкций, которые затем выполняется устройство’С среде.
В отличие от виртуальной машины Dalvik, что начиная с Android 2.2 на «йогурт», которая использует «точно в срок» (JIT) на компиляция компиляции байт-код каждый раз, когда приложение запускается, искусство представляет использование опережающих время (АОТ) компиляции путем выполнения по установки приложения. Путем сокращения общего количества компиляции, которые необходимо выполнить по работе приложения, мобильное устройство’s уменьшено использование процессора и аккумулятора повышается. В то же время искусство приносит улучшения в производительности, сборка мусора, отладки и профилирования приложений.
Обзор Xiaomi Mi 9 / Как они это делают?
Для поддержания обратной совместимости, искусство использует один и тот же вход, как в Dalvik байт-кода, подаваемого через стандартный .Декс файлы как часть файлы Android игры, в то время как .файлы odex` заменяются исполняемый и linkable формате (эльф) исполняемые файлы. После компиляции приложения с помощью искусства’s на-устройства dex2oat утилита, она запускается исключительно из скомпилированные бинарники; такой подход исключает различные накладные расходы, связанные с JIT-компиляции, но это требует дополнительного времени на компиляцию при установке приложения, и приложения занимают несколько больший объем пространства для хранения скомпилированного кода.
Источник: kzen.dev
Как я узнал, что такое dex2oat.
Хочу поделиться с вами одним наблюдением. После обновления своего LG G3 до Андроид 6.0 Marshmallow в статистике использования аккумулятора появился процесс dex2oat. Причем на него приходилась довольно большая доля потребления энергии. Что это – вирус, другое вредоносное приложение или просто системный процесс было непонятно, раньше такого я не замечал.
Полазив по интернету, на русскоязычных сайтах толком ничего не нашел, но, в конце концов разобрался откуда появился dex2oat.
После обновления на шестерку, я запустил на своем смарте восстановление данных из резервной копии. Как оказалось, за эту процедуру и отвечает тот самый процесс dex2oat, поэтому он и висел в статистике потребления заряда некоторое время сразу после обновления, после чего благополучно пропал.
Так что не переживайте, буду рад если кому пригодилось. Всем добра. Пока.
Источник: andapps.ru
Русские Блоги
DEX2OAT -процесс эффект на производительность системы
вопрос
В последнее время проблема столкнулась с проблемой. В течение некоторого времени после просыпания системы, застрявшая система часто не гладкая. Было случилось, что я сделал обновления OTA для устройства некоторое время назад. Естественно, можно было бы считать, что это было обновление OTA до системы, чтобы представить новую проблему.
После просмотра некоторых журналов устройств в системе застряли, в это время несколько устройств выполняют процесс Dex2oat в фоновом режиме. Это просто совпадение? Повлияет ли Dex2oat на производительность системы и застрять систему? Возьмите краткое понимание Dex2oat с этим вопросом.
Dex2oat введение
Приложение Android написано на Java Language, а Java работает на виртуальной машине Java. Роль виртуальной машины Java состоит в том, чтобы заблокировать разницу между базовой системой и чипом, так что верхний слой фокусируется только на разработке приложения. Нет необходимости обращать внимание на разницу в нижнем уровне.
Android использовал виртуальную машину Dalvik и в настоящее время использует виртуальную машину Art. Инструмент DEX2OAT преобразуется в файл DEX и преобразуется в формат с более высокой эффективностью выполнения виртуальных машин. Виртуальная машина Dalvik преобразуется в файлы ODEX, а виртуальная машина Art преобразуется в файл ELF. Изображение ниже
Процесс работы языка Java в Android:
Dex2oat оптимизирует определенное количество метода по мере необходимости при оптимизации. Другими словами, не оптимизированный метод будет переведен в режим овса. Согласно количеству оптимизированного метода, его можно разделить на следующие режимы:
Android Running (ART) содержит компилятор мгновенного (JIT) с функцией анализа кода, которая может продолжать повысить свою производительность при запуске приложения Android. N версия усилила режим JIT. Режим JIT — это аббревиатура как раз вовремя. Это означает, что при запуске определить, оптимизировать ли определенный метод на основе частоты использования.
Виртуальные возможности подсчитаны количество раз, когда каждый метод выполняется. Если определенный метод выполняется чаще, он достигает определенного порога, и он будет модернизирован до горячего метода и записал его в пилоте. Система оптимизирует эти методы только при зарядке. При запуске эти методы также будут оптимизированы для облегчения использования при запуске.
Командная строка dex2oat
Откройте подробную запись журнала JIT
adb root adb shell stop adb shell setprop dalvik.vm.extra-opts -verbose:jit adb shell start
adb root adb shell stop adb shell setprop dalvik.vm.usejit false adb shell start
Для обязательной компиляции конкретных программных пакетов на основе файлов конфигурации
adb shell cmd package compile -m speed-profile -f my-package
Комплексно составить конкретные программные пакеты
adb shell cmd package compile -m speed -f my-package
Для обязательной компиляции всех программных пакетов на основе файлов конфигурации
adb shell cmd package compile -m speed-profile -f -a
Комплексная компиляция всех программных пакетов
adb shell cmd package compile -m speed -f -a
DEX2OAT TOSCORCE RESTORCE TESS
Ручное выпуск команды запускает DEX2OAT и обнаружил, что процесс DEX2OAT занимает почти 300%процессора (в общей сложности 400%от общего объема ресурсов) через верхнюю команду
Из журнала также можно увидеть, что Dex2oat открыл 4 потока, работая на 4 ядрах, работая на 4 ядрах
Видя это чувство, я чувствовал, что нашел настоящего убийцы. Dex2oat занимал слишком много ресурсов процессора, что заставило ресурсы процессора быть тесными, а система застряла.
Тем не менее, есть еще одна важная информация. Из скриншота верхней команды приятное значение процесса Dex2oat составляет 10, а приоритет очень низкий. Когда процессор свободен, уровень приоритета мало влияет, и его можно разделить на достаточные ресурсы ЦП.
Как только процессор нервничает, использование процессоров с низким приоритетом будет захвачено в больших количествах, а ЦП предоставляется для более высокого приоритетного процесса. Приоритет процесса, который пользователи могут воспринимать на Android, относительно высок, а хорошее значение намного ниже 10 (чем больше приятное значение, тем ниже приоритет), поэтому процесс с хорошим значением — 10 основной причиной. Результаты измеренного измерения также одинаковы. Когда система занята, занятие процессора DEX2OAT процесса серьезно занята, и она ниже 10%.
Кроме того, некоторая информация:
1. Dex2oat будет судить ядро процессора. Несколько ядер создают несколько потоков и выполнять совпадение. Вот почему процессор занимает такое большое время, когда система свободна.
2. После перезапуска системы обновления OTA DEX2OAT не выполняется.
В заключение
Процесс Dex2oat низкий, что не является основной причиной застрявшей системы.
После анализа истинной причиной заикания системы было то, что ЦП был уменьшен на частоте. Платформа Qualcomm имела ограниченную температуру ниже 5 градусов процессора, что было снижено по частоте и более чем на 10 градусов по Цельсию. Предполагается, что можно рассмотреть меры по защите батареи при низкой температуре.
Конфигурация опции компиляции
Настройка файла Makefile в модуле LOCAL_DEX_PREOPT Опция -это TUR или FALSE, чтобы указать приложение для включения или прекращения функций предварительной оптимизации.
Включите функцию предварительной оптимизации, то есть оптимизация DEX2OAT выполняется при компиляции модуля, а оптимизированный овсяный файл генерируется при генерации APK. Был добавлен размер Systemimage, но сохранил накладные расходы Dex2oat во время работы в системе и изменил время в космосе.
Интеллектуальная рекомендация
(Turn) исследование бесконечного цикла HashMap
Эта статья является предметом http://pt.alibaba-inc.com/wp/dev_related_969/hashmap-result-in-improper-use-cpu-100-of-the-problem-investigated. Вдохновение HTML процитировал мысли в нем, спасибо за это.
Как операционная система просматривает процесс
В первой главе были рассмотрены некоторые важные темы:CPU、Память、программа、процессПозже, вторая глава официально запустит тему операционной системы. В этой главе в основном обсуждается, как операционн.
xian3
C#Multi -Thread: используйте класс Semaphore, чтобы ограничить количество доступа к ресурсам Рассмотрим такую сцену: парковка содержит только определенное количество парковочных мест. Только когда н.
Linux Базовая инструкция
Linux обычно используются команды 1. Общие клавиши ярлыков 1.ctrl+l: Clear Command -то есть, когда вы чувствуете, что команда слишком много, вам нужно очистить интерфейс; 2.ctrl + c: Если команда или .
Spring Source-код эмоциональный растение-AbstractApplicationContext#OnRefresh
Предпринять предыдущую статьюВесенний исходный код эмоциональный планирование web.xmlКонфигурацияcontextClassДля значения по умолчаниюXmlWebApplicationContext Прямой исходный код AbstractrefreshableWe.
Источник: russianblogs.com