Presentation is loading. Please wait.

Presentation is loading. Please wait.

Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:

Similar presentations


Presentation on theme: "Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:"— Presentation transcript:

1 Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Andrew.V.Sokolov@gmail.com Руководитель: Фурсов Михаил Юрьевич 1 декабря 2006

2 Цели проекта Реализовать решение для оптимизации работы скомпилированного Java-кода. Проведя сравнительный анализ с другими разработками, скомпоновать и интегрировать решение в проект Apache Harmony http://harmony.apache.org

3 Что такое оптимизация методом профилирования значений? Весь процесс состоит из нескольких этапов: Запуск исходного приложения со сбором статистической информации об использовании переменных Запуск исходного приложения со сбором статистической информации об использовании переменных Анализ собранных данных, принятие решения о возможных оптимизациях Анализ собранных данных, принятие решения о возможных оптимизациях Перекомпилирование кода с применением выбранных методов оптимизации Перекомпилирование кода с применением выбранных методов оптимизации

4 Профилируемое исполнение Для сбора информации об используемых в процессе исполнения переменных применяются профайлеры Их задача – выявить часто встречаемые значения, применяя один из алгоритмов: TVN TVN Сбор всех значений переменной с последующей сортировкой по количеству встреч Сбор всех значений переменной с последующей сортировкой по количеству встреч

5 Анализ собранных данных Для эффективной оптимизации представляют интерес «Горячие» методы «Горячие» методы Методы, где значения переменных можно описывать как квазиконстанты Методы, где значения переменных можно описывать как квазиконстанты Операторы ветвления (условные переходы) Операторы ветвления (условные переходы)

6 Методы оптимизации Перекомпоновка кода для лучшего предсказания переходов Перекомпоновка кода для лучшего предсказания переходов if ( cond ) if ( !cond ) oper1;=> oper2; oper1;=> oper2; elseelse oper2;oper1; Специализация кода Специализация кода if ( var == _const ) doSpecializedCode();elsedoUsualCode();

7 Контрольные точки Выработать схему проекта сделано Выработать схему проекта сделано Имплементировать профайлер 01.01.07 Имплементировать профайлер 01.01.07 1. Выбор алгоритма сделано 2. Его реализация сделано 3. Отладка, проверка на тестах сделано 4. Интегрирование в существующие компиляторы в процессе Реализация анализатора статистики 15.02.07 Реализация анализатора статистики 15.02.07 Реализация модуля перекомпилирования 25.03.07 Реализация модуля перекомпилирования 25.03.07 Тестирование, написание документации к проекту. Интегрирование в Apache Harmony 01.06.07 Тестирование, написание документации к проекту. Интегрирование в Apache Harmony 01.06.07

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 http://harmony.apache.org http://harmony.apache.org http://harmony.apache.org

9 Q&A Спасибо за внимание!


Download ppt "Оптимизация Just – in - time компилятора методом профилирования значений Соколов Андрей Владимирович, ФФ НГУ, 3 курс, Руководитель:"

Similar presentations


Ads by Google