Почему у JVM медленный стартап тайм?
- до прогрева работает интерпретатор байткода
почти у каждого производителя жвма(IBM, Amazon, Oracle) была своя реализация AOT компиляции,
не помогло
- происходит чтение и парсинг всех .class файлов
Решили а шо если запарсить всю структуру зарание, задампать на диск и на старте просто прочитать готовенькое? class data sharing
не помогло
Что же еще там происходит на старте? Оказалось что огромное количество исполнения байткода статических инициализаторов всех стд классов например поднятие с диска всех локалей, датавремя, таймзоны
Даже если эту инициализацию скомпилировать статически это все равно медленно так как непредсказуемо
Проблему решили в GraalVM очень забавно, они просто этого не делают, да в обход спецификации, а когда первый раз понадобится таймзона, только статический инициализатор таймзон и запустят!
Авторы всех АОТ компиляторов кусают теперь локти что не додумались
А также начат Project Leyden по внедлению этой техники в стандарт, но уже с соблюдейнием спецификации https://openjdk.org/projects/leyden/
Можно скачать попробовать билд здесь https://jdk.java.net/leyden/
Так жаба-языки можно будет использовать для написания CLI тулзов и на edge компутинге заместь Go даже без GraalVM и других приседаний!
#JVM
- до прогрева работает интерпретатор байткода
почти у каждого производителя жвма(IBM, Amazon, Oracle) была своя реализация AOT компиляции,
не помогло
- происходит чтение и парсинг всех .class файлов
Решили а шо если запарсить всю структуру зарание, задампать на диск и на старте просто прочитать готовенькое? class data sharing
не помогло
Что же еще там происходит на старте? Оказалось что огромное количество исполнения байткода статических инициализаторов всех стд классов например поднятие с диска всех локалей, датавремя, таймзоны
Даже если эту инициализацию скомпилировать статически это все равно медленно так как непредсказуемо
Проблему решили в GraalVM очень забавно, они просто этого не делают, да в обход спецификации, а когда первый раз понадобится таймзона, только статический инициализатор таймзон и запустят!
Авторы всех АОТ компиляторов кусают теперь локти что не додумались
А также начат Project Leyden по внедлению этой техники в стандарт, но уже с соблюдейнием спецификации https://openjdk.org/projects/leyden/
Можно скачать попробовать билд здесь https://jdk.java.net/leyden/
Так жаба-языки можно будет использовать для написания CLI тулзов и на edge компутинге заместь Go даже без GraalVM и других приседаний!
#JVM
🤯2❤1
Forwarded from Denis Rangelov
Эксперименты Кэссиди Джеймса с акцентными цветами:
This media is not supported in your browser
VIEW IN TELEGRAM
👍1
Внимание! если магическим образом во сне поменять местами сознание и память двух людей, то проснувшись они заметят?
Anonymous Poll
67%
Да
33%
Нет
8%
Рассуждение в комментариях
лучший обзор fallout 1, если пережить крики в начале https://youtu.be/mLJ1gyIzg78
YouTube
Fallout 3 Is Garbage, And Here's Why
This is a review of Fallout 3, featuring retrospectives on the series as a whole, analysis of gameplay and storytelling mechanics, discussion of the games' initial critical reception, and the ability to absorb 1.5 hours of your human life right through the…
Media is too big
VIEW IN TELEGRAM
открыл без плагинов новость
ну это же литерали неюзабельно лол, удачи гуглу с третьей версией манифеста
ну это же литерали неюзабельно лол, удачи гуглу с третьей версией манифеста
😁2😭2🙈1