Язык Java со времен своего возникновения постоянно подвергали критике, инкриминируя ему низкую производительность. Благодаря оптимизирующему динамическому компилятору в нативный (родной) код, производительность Java практически сравнялась с производительностью таких языков как C/С++, а на некоторых классах приложений и обошла их. Параллельно с динамическими компиляторами развивались и статические компиляторы для языка Java и на сегодняшний день пока нет явного победителя между этими двумя подходами.
В этом докладе я хотел бы развеять общие мифы вокруг старого спора что лучше динамическая или статическая компиляция, и показать, что оба подхода имеют свои сильные и слабые стороны и почему будущее за гибридным подходом:
- Что такое динамические и статические компиляторы?
- Мифы вокруг статической компиляции.
- Время старта приложения (startup time).
- Плоский профиль исполнения в сравнении с профилем с явными пиками.
- Синица в руках или журавль в небе?
- Динамические оптимизации подробнее.
- Статические оптимизации подробнее.
- Глобальные оптимизации.
- Не хлебом единым жив человек.
- А что сравниваем?
- Будущее Java.
Презентация:
Запись выступления: