From c9386fd137269b9af388d84efca3fd8a4957ef45 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Mon, 5 Oct 2026 19:13:06 +0200 Subject: [PATCH 1/2] Configure G1 garbage collector to free memory more frequently --- build.gradle.kts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9c144fbf..a0072779 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -51,7 +51,13 @@ tasks.named(DaemonJvmPropertiesConfigurator.TASK_NAME) { val jlink = tasks.register(JlinkTask.DEFAULT_TASK_NAME) { description = "Generates a minimal JRE for the project with compact object headers archive." - options = listOf("--strip-debug", "--no-header-files", "--no-man-pages", "--ignore-modified-runtime", "--generate-cds-archive") + options = listOf( + "--strip-debug", + "--no-header-files", + "--no-man-pages", + "--ignore-modified-runtime", + "--generate-cds-archive" + ) modules = listOf( "java.instrument", // for JUnit "java.management", // for OpenTelemetry @@ -100,7 +106,12 @@ tasks.test { application { mainClass = "com.github.stickerifier.stickerify.runner.Main" - applicationDefaultJvmArgs = listOf("--enable-final-field-mutation=ALL-UNNAMED") + applicationDefaultJvmArgs = listOf( + "-XX:G1PeriodicGCInterval=10000", + "-XX:G1PeriodicGCSystemLoadThreshold=0", + "-XX:-ShrinkHeapInSteps", + "--enable-final-field-mutation=ALL-UNNAMED" + ) } val openTelemetryAgent = tasks.register(DownloadOpenTelemetryAgentTask.DEFAULT_TASK_NAME) { From a76c277fa1ba98fe36a1e7f519863db9c1b3e868 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Mon, 5 Oct 2026 21:57:12 +0200 Subject: [PATCH 2/2] Configure additional G1 settings to optimize memory management --- build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index a0072779..ae666338 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -107,8 +107,12 @@ tasks.test { application { mainClass = "com.github.stickerifier.stickerify.runner.Main" applicationDefaultJvmArgs = listOf( + "-Xms64m", + "-Xmx320m", "-XX:G1PeriodicGCInterval=10000", "-XX:G1PeriodicGCSystemLoadThreshold=0", + "-XX:MaxHeapFreeRatio=20", + "-XX:MinHeapFreeRatio=10", "-XX:-ShrinkHeapInSteps", "--enable-final-field-mutation=ALL-UNNAMED" )