
Дмитрий Соломенников
Axiom JDK
Скорость компиляции Java в силу целого ряда причин невысокая, особенно если сравнивать с некоторыми другими языками. Мы поставили и успешно решили задачу ускорения компиляции, добившись двукратного прироста скорости, а также заметного снижения потребления памяти и CPU при компиляции. Это важная задача, способная облегчить труд Java-разработчиков и использование вычислительных ресурсов на CI.
Достигли мы этого с помощью технологии AOT, выполненной средствами Axiom NIK Pro. Ускорение достигается путем преобразования кода javac в машинный код. Такое преобразование возможно, поскольку в самом коде javac не используется Java Reflection. В тех местах, где она все же используется (флаг -processor
), производится откат на Java-реализацию javac. Для этих целей модифицирован код Java launcher, он обрабатывает параметры командной строки и принимает решение, запускать ли AOT версию или запускать Java-версию javac.
В докладе будет приведена статистическая информация, показаны разные способы ускорения Java-приложений, а также разобраны возможности использования полученных результатов для экономии ресурсов CI.
Axiom JDK
JUG Ru Group