You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the past we have used GraalVM flags that result in worse build times for native executables in order to reduce the system resources used at build time, e.g. #21018.
I recently noticed that GraalVM is doing something similar when it comes to configuring the JVM that runs the native image builder, which leads to slower build times when using GraalVM for JDK 21 and GraalVM for JDK 17 in comparison to using the older GraalVM 22.3 in exchange to using less memory at build time.
Although this makes sense in some environments it's a waste of time and resources (as they just stay idle) in others, e.g. in GH runners were we run a single build per runner so we are OK with it using as much memory as possible.
Implementation ideas
I propose the introduction of a new quarkus.native.* property that will control whether we want the native image build to be frugal when it comes to resource usage, or greedy. Instead of a binary switch this could potentially have states, e.g. frugal, balanced, greedy. The value of the property would essentially control the default flags we are passing to GraalVM.
The text was updated successfully, but these errors were encountered:
Maybe this is something that we could discuss in a oracle/graal#3933?
@fniephaus would you be able to lead this please? Unfortunately, the day and time of the Native Image Committer and Community Meetings does not work very well for me lately and I am not sure I will be able to be present.
Description
In the past we have used GraalVM flags that result in worse build times for native executables in order to reduce the system resources used at build time, e.g. #21018.
I recently noticed that GraalVM is doing something similar when it comes to configuring the JVM that runs the native image builder, which leads to slower build times when using GraalVM for JDK 21 and GraalVM for JDK 17 in comparison to using the older GraalVM 22.3 in exchange to using less memory at build time.
Although this makes sense in some environments it's a waste of time and resources (as they just stay idle) in others, e.g. in GH runners were we run a single build per runner so we are OK with it using as much memory as possible.
Implementation ideas
I propose the introduction of a new
quarkus.native.*
property that will control whether we want the native image build to be frugal when it comes to resource usage, or greedy. Instead of a binary switch this could potentially have states, e.g.frugal
,balanced
,greedy
. The value of the property would essentially control the default flags we are passing to GraalVM.The text was updated successfully, but these errors were encountered: