Редекс Facebook Делает Android Более Эффективным


Или это так? Разработчики Facebook только что описали проект, направленный на оптимизацию байтового кода Java. Пост впечатляет. но создается впечатление, что он открывает новые горизонты — это не так.

Вы склонны думать, что оптимизация, такая как минимизация, относится только к интерпретируемым языкам, таким как JavaScript, и совсем не подходит для скомпилированного кода, такого как байтовый код. Это, однако, игнорирует тот факт, что байтовый код не так низкоуровневый, как вы могли бы подумать. Байтовый код включает в себя имена переменных и других символов, а также полные пути к тому, где хранятся вещи. В конце концов, байтовый код предназначен для интерпретации JVM и как таковой содержит много информации, которая отсутствовала бы в программе машинного кода, сведенной к машинным операциям и адресам. 

Facebook реализовал оптимизатор, который работает непосредственно с кодом DEX, предназначенным для интерпретатора Android Dalvik.

Он выполняет ряд этапов оптимизации, включая:

Минимизация и сжатие

Он заменяет читаемые человеком строки в байтовом коде небольшими уникальными сгенерированными идентификаторами.  

встраивание

Если функция вызывает другую функцию, то более эффективно преобразовать вызов во встроенный код, поместив код вызываемой функции в вызывающую функцию.

Удаление неиспользуемых функций оболочки

Удалите функции set/get, которые не используются.

Мертвый код elmimination

Пройдитесь по графику функций и удалите любой недостижимый код. 


Добавить комментарий