а есть оптимизация джита, которая добавляет аппликацию объектов?
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.
Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.
Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.
Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
С чего этот код нее управляется gc? Какой код то тогда управляться будет, если все исполняемое - это конвертированный код? Кто кроме этого кода мусор то генерировать будет
С чего этот код нее управляется gc? Какой код то тогда управляться будет, если все исполняемое - это конвертированный код? Кто кроме этого кода мусор то генерировать будет
Тогда получается что для AOT скомпилированного приложения тоже нужен инстанс jvm, чтобы управлять этим приложением.
Тогда получается что для AOT скомпилированного приложения тоже нужен инстанс jvm, чтобы управлять этим приложением.
This executable includes the application classes, classes from its dependencies, runtime library classes from JDK and statically linked native code from JDK. It does not run on the Java VM, but includes necessary components like memory management and thread scheduling from a different virtual machine, called “Substrate VM”. Substrate VM is the name for the runtime components (like the deoptimizer, garbage collector, thread scheduling etc.).
Ок, попробую еще раз объяснить в целом задачу, может быть в первый раз не совсем понятно объяснил.
Есть java-приложение, в нем есть вызов
System.getenv(String)
Для сборки дистрибутива используется application плагин и система сборки Gradle.
Нужно: проставить env-переменные в build.gradle
А дистрибутив это джарник или вы градлом докер имейдж собираете? Если 2, то у вас получится это сделать. Если 1, то даже хз как вы системные переменные проставите
А дистрибутив это джарник или вы градлом докер имейдж собираете? Если 2, то у вас получится это сделать. Если 1, то даже хз как вы системные переменные проставите
И почему они могут быть только в докере? Условно: когда я запускаю код в идее, я могу проставить переменные окружения там, и все работает, все прекрасно