Size: a a a

2020 June 07

OO

Oleksandr Olgashko in pro.jvm
вот в деталях их реализации я уже не разбираюсь, в чате иногда отвечает shipilev, который мб сможет помочь
источник

sr

sudo rm -rf / in pro.jvm
Oleksandr Olgashko
а есть оптимизация джита, которая добавляет аппликацию объектов?
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.

Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно  обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
источник

DB

Dmitry Baynak in pro.jvm
sudo rm -rf /
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.

Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно  обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
источник

IK

Igor Komarov in pro.jvm
Можете подсказать, как в 'application' плагине в Gradle прописать автоматически проставляемые в бинарник environmental variables?
источник

AE

Alexandr Emelyanov in pro.jvm
sudo rm -rf /
возможно мое понимание работы джит компилятора неверное. Подскажи если что не так.

Джит компилирует метод (hotspot) в нативный код. Этот код уже не управляется jvm, соответсвенно  обьекты внутри этого метода не попадают на кучу и потом недоступны для gc. То есть, при компиляции в нативный код, джит должен докинуть какую-то чистку памяти, которая должна случится после выполнения этого кода
С чего этот код нее управляется gc? Какой код то тогда управляться будет, если все исполняемое - это конвертированный код? Кто кроме этого кода мусор то генерировать будет
источник

AE

Alexandr Emelyanov in pro.jvm
Igor Komarov
Можете подсказать, как в 'application' плагине в Gradle прописать автоматически проставляемые в бинарник environmental variables?
Как понять автоматически проставляемые?
источник

IK

Igor Komarov in pro.jvm
Alexandr Emelyanov
Как понять автоматически проставляемые?
Имею в виду – подставляемые сгенеренным distZip скриптом
источник

AE

Alexandr Emelyanov in pro.jvm
Igor Komarov
Имею в виду – подставляемые сгенеренным distZip скриптом
Куда они должны проставляться?
источник

IK

Igor Komarov in pro.jvm
Ок, попробую еще раз объяснить в целом задачу, может быть в первый раз не совсем понятно объяснил.

Есть java-приложение, в нем есть вызов
System.getenv(String)


Для сборки дистрибутива используется application плагин и система сборки Gradle.

Нужно: проставить env-переменные в build.gradle
источник

sr

sudo rm -rf / in pro.jvm
Alexandr Emelyanov
С чего этот код нее управляется gc? Какой код то тогда управляться будет, если все исполняемое - это конвертированный код? Кто кроме этого кода мусор то генерировать будет
Тогда получается что для AOT скомпилированного приложения тоже нужен инстанс jvm, чтобы управлять этим приложением.
источник

DB

Dmitry Baynak in pro.jvm
sudo rm -rf /
Тогда получается что для AOT скомпилированного приложения тоже нужен инстанс jvm, чтобы управлять этим приложением.
у большинства (если не у всех) языков есть рантайм в том или ином виде
источник

AB

Andrey Belyaev in pro.jvm
sudo rm -rf /
Тогда получается что для 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.).
источник

AB

Andrey Belyaev in pro.jvm
источник

sr

sudo rm -rf / in pro.jvm
Спасибо, теперь понятно👍
источник

AE

Alexandr Emelyanov in pro.jvm
Igor Komarov
Ок, попробую еще раз объяснить в целом задачу, может быть в первый раз не совсем понятно объяснил.

Есть java-приложение, в нем есть вызов
System.getenv(String)


Для сборки дистрибутива используется application плагин и система сборки Gradle.

Нужно: проставить env-переменные в build.gradle
Так они из системы тянутся, из системных переменных
источник

AE

Alexandr Emelyanov in pro.jvm
sudo rm -rf /
Тогда получается что для AOT скомпилированного приложения тоже нужен инстанс jvm, чтобы управлять этим приложением.
В аот нет jit, это другая штука
источник

ДК

Дима Красилов... in pro.jvm
Igor Komarov
Ок, попробую еще раз объяснить в целом задачу, может быть в первый раз не совсем понятно объяснил.

Есть java-приложение, в нем есть вызов
System.getenv(String)


Для сборки дистрибутива используется application плагин и система сборки Gradle.

Нужно: проставить env-переменные в build.gradle
А дистрибутив это джарник или вы градлом докер имейдж собираете?
Если 2, то у вас получится это сделать.
Если 1, то даже хз как вы системные переменные проставите
источник

IK

Igor Komarov in pro.jvm
Дима Красилов
А дистрибутив это джарник или вы градлом докер имейдж собираете?
Если 2, то у вас получится это сделать.
Если 1, то даже хз как вы системные переменные проставите
Докер здесь в принципе не при чем
источник

ДК

Дима Красилов... in pro.jvm
Igor Komarov
Докер здесь в принципе не при чем
Почему.
Вам же энвы надо проставить
источник

IK

Igor Komarov in pro.jvm
И почему они могут быть только в докере? Условно: когда я запускаю код в идее, я могу проставить переменные окружения там, и все работает, все прекрасно
источник