Пропозиція Java 9 може прискорити деякі програми, але повільно інші

Java-додатки отримуватимуть швидше час запуску завдяки офіційній пропозиції включити компіляцію до платформи.

Проект пропозиції Java Development Kit, автором якого є Володимир Козлов, головний технічний співробітник Oracle, призначений для включення в Java 9, який, як очікується, буде доступний наступного літа.

"Ми хотіли б, щоб це перетворилося на JDK 9, але це, звичайно, буде залежати від результату процесу OpenJDK для цієї JEP (Пропозиції щодо вдосконалення JDK)", - заявив Жорж Сааб, віце-президент з розробки програмного забезпечення в групі платформи Java в Oracle, у четвер. Попередньо збірка була a Викладена мета для Java 9 для вирішення проблеми повільного запуску.

"Компілятори JIT швидкі, але програми Java можуть стати настільки великими, що JIT потребує тривалого часу, щоб повністю прогрітися", - йдеться у пропозиції Козлова. "Нечасто використовувані методи Java ніколи не можуть бути складені, що може спричинити штраф за ефективність через повторні інтерпретовані виклики".

У резюме пропозиції зазначається, що класи Java будуть складені до рідного коду до запуску віртуальної машини. Кінцева мета - покращити час запуску невеликих або великих Java-додатків, маючи принаймні обмежений вплив на пікові показники та мінімізуючи зміни в робочому процесі користувача.

Компіляція попереду часу буде виконана за допомогою нового інструменту jaotc, while Технологія Грааль, Що робить можливим написати динамічний компілятор і інтерпретатор мови часу виконання в Java, використовується в якості зворотного кінця, що генерує код. Використання коду, складеного AOT, є прозорим для користувачів, але, відповідно до пропозиції, надаються опції JVM для контролю доступу та зберігання коду.

План, однак, несе ризики щодо ефективності. "Можливо, що використання попередньо складеного коду може призвести до використання менш оптимального коду, що призведе до втрати продуктивності", - йдеться у пропозиції. "Тестування продуктивності показує, що деякі програми отримують користь від компільованого кодом AOT, а інші чітко демонструють регресії". Коли AOT як функція відключення, можливі регресії продуктивності для програм користувача. "Якщо користувач виявить, що програма запускається повільніше, або не досягає очікуваної пікової продуктивності, він може просто відновити новий JDK без бібліотек AOT."

Проект залежить від інтерфейсу JVM-компілятора на рівні Java, який дозволяє компілятору, написаному на Java, використовувати JVM як динамічний компілятор Java. Це також залежить від Graal-core, щоб бути частиною JDK. Java 9 був запланований наступного березня, але a чотиримісячна затримка.

джерело

залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.