Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемwww.i-lab.nsu.ru
1 Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель: Фурсов Михаил Юрьевич 1 декабря 2006
2 Цели проекта Реализовать решение для оптимизации работы скомпилированного Java-кода. Проведя сравнительный анализ с другими разработками, скомпоновать и интегрировать решение в проект Apache Harmony
3 Что такое оптимизация методом профилирования значений? Весь процесс состоит из нескольких этапов: Запуск исходного приложения со сбором статистической информации об использовании переменных Запуск исходного приложения со сбором статистической информации об использовании переменных Анализ собранных данных, принятие решения о возможных оптимизациях Анализ собранных данных, принятие решения о возможных оптимизациях Перекомпилирование кода с применением выбранных методов оптимизации Перекомпилирование кода с применением выбранных методов оптимизации
4 Профилируемое исполнение Для сбора информации об используемых в процессе исполнения переменных применяются профайлеры Их задача – выявить часто встречаемые значения, применяя один из алгоритмов: TVN TVN Сбор всех значений переменной с последующей сортировкой по количеству встреч Сбор всех значений переменной с последующей сортировкой по количеству встреч
5 Анализ собранных данных Для эффективной оптимизации представляют интерес «Горячие» методы «Горячие» методы Методы, где значения переменных можно описывать как квазиконстанты Методы, где значения переменных можно описывать как квазиконстанты Операторы ветвления (условные переходы) Операторы ветвления (условные переходы)
6 Методы оптимизации Перекомпоновка кода для лучшего предсказания переходов Перекомпоновка кода для лучшего предсказания переходов if ( cond ) if ( !cond ) oper1;=> oper2; oper1;=> oper2; elseelse oper2;oper1; Специализация кода Специализация кода if ( var == _const ) doSpecializedCode();elsedoUsualCode();
7 Контрольные точки Выработать схему проекта сделано Выработать схему проекта сделано Имплементировать профайлер Имплементировать профайлер Выбор алгоритма сделано 2. Его реализация сделано 3. Отладка, проверка на тестах сделано 4. Интегрирование в существующие компиляторы в процессе Реализация анализатора статистики Реализация анализатора статистики Реализация модуля перекомпилирования Реализация модуля перекомпилирования Тестирование, написание документации к проекту. Интегрирование в Apache Harmony Тестирование, написание документации к проекту. Интегрирование в Apache Harmony
8 Список литературы Value profiling and optimization, Value profiling and optimization, Brad Calder, Peter Feller Optimizing dynamically dispatched calls, Optimizing dynamically dispatched calls, David Ungar Profile-guided receiver class prediction, Profile-guided receiver class prediction, David Grove, Jeffrey Dean
9 Q&A Спасибо за внимание!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.