Для студентов СПбГУ по предмету ИнформатикаВлияние оптимизаций компилятора на энергопотребление Android-приложенийВлияние оптимизаций компилятора на энергопотребление Android-приложений
2022-05-122022-05-12СтудИзба
Курсовая работа: Влияние оптимизаций компилятора на энергопотребление Android-приложений
Описание
Оглавление
Введение
В наше время смартфоны, умные часы, ноутбуки и другие умные
устройства, которые упрощают жизнь человеку, все сильнее проника-
ют в нашу жизнь. Если эта тенденция сохранится, то в ближайшем
будущем подавляющее большинство населения планеты будет иметь
персональный компьютер в кармане. В настоящее время самая попу-
лярная используемая в таких устройствах операционная система - это
Android [23].
В настоящее время одна из главных проблем в использовании мо-
бильных устройств - малое время работы устройств в связи с высоким
расходом энергии аккумулятора, от которого питается смартфон. Чем
меньше расход аккумулятора, тем дольше работоспособность устрой-
ства. Производители данных устройств пытаются адаптироваться и улуч-
шать аппаратную и программную составляющую устройств.
Увеличение времени работоспособности смартфона достигается раз-
ными способами: производители увеличивают ёмкость батарей, коман-
ды разработчиков Android проводят улучшения работы операционной
системы в плане энергоэффективности, разработчики приложений пи-
шут энергоэффективный код, например, избавляясь от энергетических
анти-шаблонов кода [2]. Но в действительности код, исполняемый сре-
дой выполнения, отличается от кода, написанного программистом, в
силу оптимизаций, которые проводит компилятор, тем самым видоиз-
меняя код. Эти оптимизации могут повлиять не только на быстродей-
ствие, но и на энергопотребление приложений. Однако, в настоящее
время есть данные о том, как эти оптимизации влияют на быстродей-
ствие, но не изучено, как они влияют на энергопотребление. Поэтому
целью этой курсовой работы является оценка влияния этих оптимизаций на энергопотребление приложений. Результаты исследования могут
Введение 4
1. Цель и задачи 6
2. Обзор 7
2.1. История компиляторов и процесс компиляции . . . . . . 7
2.2. Список оптимизаций . . . . . . . . . . . . . . . . . . . . . 8
2.2.1. Inlining . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2. Staticization . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3. Null Data Flow Analysis . . . . . . . . . . . . . . . . 9
2.2.4. Value Assumption . . . . . . . . . . . . . . . . . . . 10
2.2.5. Method Outlining . . . . . . . . . . . . . . . . . . . 10
2.2.6. String Constant Operations . . . . . . . . . . . . . . 11
2.2.7. Forced Inlining . . . . . . . . . . . . . . . . . . . . . 11
2.2.8. Enum Ordinals and Names . . . . . . . . . . . . . . 12
2.2.9. Выводы . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Аналогичные исследования . . . . . . . . . . . . . . . . . 12
2.3.1. Поиск литературы . . . . . . . . . . . . . . . . . . 12
2.3.2. Изучение аналогичных работ . . . . . . . . . . . . 14
2.3.3. Выводы . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4. Методология эксперимента . . . . . . . . . . . . . . . . . . 18
2.4.1. Подготовка устройства к экспериментам . . . . . . 18
2.4.2. Набор тестовых программ . . . . . . . . . . . . . . 20
2.4.3. Navitas Framework . . . . . . . . . . . . . . . . . . . 22
3. Эксперименты 23
3.1. Библиотека для измерений . . . . . . . . . . . . . . . . . . 23
3.2. Описание экспериментальной установки . . . . . . . . . . 233.3. Inlining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4. Outlining . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5. Enum Ordinal and Names . . . . . . . . . . . . . . . . . . . 29
3.6. String Constant Operations . . . . . . . . . . . . . . . . . . 34
3.7. Enum Ordinal And Names и String Constant
Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.8. Staticization . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4. Заключение 45
Список литературы 46
В наше время смартфоны, умные часы, ноутбуки и другие умные
устройства, которые упрощают жизнь человеку, все сильнее проника-
ют в нашу жизнь. Если эта тенденция сохранится, то в ближайшем
будущем подавляющее большинство населения планеты будет иметь
персональный компьютер в кармане. В настоящее время самая попу-
лярная используемая в таких устройствах операционная система - это
Android [23].
В настоящее время одна из главных проблем в использовании мо-
бильных устройств - малое время работы устройств в связи с высоким
расходом энергии аккумулятора, от которого питается смартфон. Чем
меньше расход аккумулятора, тем дольше работоспособность устрой-
ства. Производители данных устройств пытаются адаптироваться и улуч-
шать аппаратную и программную составляющую устройств.
Увеличение времени работоспособности смартфона достигается раз-
ными способами: производители увеличивают ёмкость батарей, коман-
ды разработчиков Android проводят улучшения работы операционной
системы в плане энергоэффективности, разработчики приложений пи-
шут энергоэффективный код, например, избавляясь от энергетических
анти-шаблонов кода [2]. Но в действительности код, исполняемый сре-
дой выполнения, отличается от кода, написанного программистом, в
силу оптимизаций, которые проводит компилятор, тем самым видоиз-
меняя код. Эти оптимизации могут повлиять не только на быстродей-
ствие, но и на энергопотребление приложений. Однако, в настоящее
время есть данные о том, как эти оптимизации влияют на быстродей-
ствие, но не изучено, как они влияют на энергопотребление. Поэтому
целью этой курсовой работы является оценка влияния этих оптимизаций на энергопотребление приложений. Результаты исследования могут
помочь разработчикам Android-приложений в условиях неоднозначного
выбора между быстродействием и малым энергопотреблением.
Характеристики курсовой работы
Предмет
Учебное заведение
Семестр
Просмотров
4
Размер
167,04 Kb
Список файлов
Документ курсовая.docx