Apache Harmony или как сделать курсовую работу в рамках этого проекта Фурсов Михаил
О проекте Apache Harmony история/текущее состояние Создан 2 года назад совместными усилиями группой компаний и институтов, среди которых такие как Apache, Intel, IBM, BEA Цель: создать открытую реализацию J2SE под лицензией Apache.
О проекте Apache Harmony текущее состояние Близкая к 100% реализация J2SE APIv5 Несколько виртуальных машин Несколько JIT компиляторов и интерпретаторов Несколько различных сборщиков мусора (garbage-collectors) Большой набор тестовых пакетов Инструменты входящие в JDK
О проекте Apache Harmony внутренняя структура / участие в проекте Committers ~ 20 человек Developers – все желающие Caйт проекта: Issue/bug tracker: Архив дискуссий по проекту:
Примеры задач /варианты участия Компиляторы: реализация оптимизаций Сборщик мусора: оптимизация времени работы и планов сборки мусора. Виртуальная машина: содержит большое количество подкомпонент каждую из которых можно улучшить. Пример: 1 неделю назад в Harmony был выложен новый и самостоятельно разработанный bytecode verificator, который в несколько раз быстрее имеющегося. J2SE API: реализация недостающего и оптимизация существующего Java API Анализ производительности открытых benchmarks ( DaCapo, SciMark…) с целью внесения улучшений в любой из компонентов JVM
Примеры задач /варианты участия Примеры задач для компилятора: Java bytecode translator refactoring Reduce overhead from Back Branch Polling Implement interface call devirtualization Higher bounds checks of array accesses are not eliminated Improve loop unrolling and the code produced after the optimization Implement versioning of hot loops Implement bytecode-based edge profiling Register allocation improvements and tuning Support X87 based floating point math …. И много других задач
Что нужно для успешного выполнения задачи Участие в выборе тематики вашей работы. Научный руководитель, заинтересованный и разбирающийся в данной тематике. Работа в Intel Labs или дома (~10-15 часов в неделю). Доступ в Интернет. Понимание, зачем это нужно вам самим.
Необходимые и желательные навыки Необходимые навыки Языки Java или C/C++ Желательные навыки Письменный английский Умение читать код Умение работать с профилировщиками (VTune)
Apache Harmony Вопросы и ответы