GraalVM безопасность опережающей компиляции (AOT) - PullRequest
0 голосов
/ 02 мая 2019

Я высоко ценю компиляцию байт-кода в нативный код, но разве это не вызывает проблем с безопасностью? Например. не пропущены ли проверки во время выполнения, такие как проверки границ массива?

Хорошо, если вы скомпилируете доверенный код Java, он, вероятно, не сделает ничего плохого, но могут быть и другие сценарии.

1 Ответ

0 голосов
/ 07 июня 2019

Обычный компилятор Hotspot для своевременной установки в установленном JDK превращает байт-код в собственный код.То, что делает заблаговременная компиляция, это делать работу, ну, заблаговременно.Есть отличное видео о том, как работает точно вовремя, показывая вам код Graal JIT , который вы можете настроить для использования JDK11.Пример кода в видео по этой ссылке - Java, а Graal - Java.Заранее запустив компилятор, вы получаете намного более быстрое время запуска и меньший объем памяти.Вы можете не получить такой быстрый код в данный момент, как JIT-компилятор, поскольку JIT-компилятор может выполнять оптимизацию на основе данных, с которыми сталкивается код.Опережающий компилятор не может угадать, какие пути кода никогда не встретятся, основываясь на данных, с которыми сталкивается программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...