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

Презентация:



Advertisements
Похожие презентации
Оптимизация времени работы и качества генерируемого кода компиляторов Apache Harmony Куртов Николай Владимирович студент 3-го.
Advertisements

Комплексный подход к решению проблем визуализации, анализа и модификации объектных модулей под Interix ЛОБАЧЕВ Александр Юрьевич E mail:
Составление программ Разработка программ в среде Турбо- Паскаль.
Программи́ст специалист, занимающийся написанием программ для ЭВМ, то есть программированием.
Apache Harmony или как сделать курсовую работу в рамках этого проекта Фурсов Михаил.
Технология подготовки и решения задач с помощью компьютера Этапы решения задач с помощью компьютера.
Разработка системы дистанционного образования. Подсистема инспектора. Нормативные документы. Система поддержки дистанционного образования ФИТ НГУ Автор:
Решение задач по теме «Ветвление»
АЛГОРИТМЫ РАЗВЕТВЛЕННОЙ СТРУКТУРЫ Условие задания: Определить попадает ли точка с заданными координатами (x, y) в круг заданного радиуса r. 1.
Отладка программного обеспечения
да нет Программирование ветвлений на языке Паскаль.
Программная инженерия Андрей Дмитриев ©
Усовершенствование языка и компилятора Для системы фрагментированного программирования Крупин Сергей ФИТ НГУ 3 курс Руководитель: Перепёлкин Владислав.
Отладка программного обеспечения. Определение отладки Отладка - этап разработки компьютерной программы, на котором, обнаруживают, локализуют и устраняют.
1 этап. Постановка задачи 2 этап. Анализ и исследование задачи 3 этап. Разработка алгоритма 4 этап. Разработка программы 5 этап. Тестирование и отладка.
Рогозин Леонид аспирант кафедры ИТС (МИИТ) Научный руководитель: профессор Доенин В.В. +7(905)
Поиск оптимального набора значений опций компиляции Студент: Чирцов Артём, ФИТ/IV Руководитель: Илья Чёрный
Языки программирования Выполнили: Гашек Г.И. и Горшкова И.А.
Этапы решения задач на компьютере.
Роль Аналитика в IT- компании Руководитель группы Медведева Наталья.
Транксрипт:

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

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

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

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

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

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

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

Список литературы 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

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