Введение
Глава 1. Обзор существующих механизмов сокращения размера 13
1.1 Анализ достижимости методов 13
1.2 Удаление неиспользуемых полей 22
1.3 Специализация иерархии классов 23
1.4 Ромизация 24
1.5 Алгоритм Reachable Member Analysis 26
1.6 Понижение избыточности Java-программ 28
1.7 Анализ рефлексии 32
1.8 Специализация набора инструкций 34
1.9 Оптимизация кодирования инструкций 41
1.10 Сокращение размера класс-файлов 42
1.11 Выводы 42
Глава 2. Понижение избыточности при выборочной инициализации классов 45
2.1 Инициализация классов 45
2.2 Финализация объектов 48
2.3 Достижимость объектов в куче 50
2.4 Описание дополнительных зависимостей 52
2.5 Анализ достижимости методов 55
2.6 Анализ удалимости полей 58
2.7 Анализ достижимости неудалимых объектов 60
2.8 Межпроцедурный анализ указателей 62
2.9 Анализ удалимости классов 68
2.10 Автоматический анализ нативных зависимостей 69
2.11 Выводы 71
Глава 3. Специализация набора инструкций 73
3.1 Специализация набора инструкций 73
3.2 Шаблоны последовательностей инструкций 74
3.3 Упрощение исходного набора инструкций 75
3.4 Построение словаря последовательностей 77
3.5 Инструкции шаблона 79
3.6 Перебор шаблонов 80
3.7 Выбор набора инструкций 82
3.8 Выводы 84
Глава 4. Программная реализация и экспериментальное исследование 87
4.1 Реализация предложенных алгоритмов 87
4.2 Сравнение алгоритмов понижения избыточности 89
4.3 Экспериментальная оценка алгоритмов понижения избыточности 92
4.4 Сравнение алгоритмов сжатия 103
4.5 Экспериментальная оценка алгоритма сжатия 105
4.6 Ограничения 109
4.7 Направления дальнейшего исследования 110
4.8 Выводы 111
Заключение 118
Список литературы 121
Список рисунков 133
Список таблиц 134


