From a25238ade930ce9248891f0f7e554ef457333952 Mon Sep 17 00:00:00 2001 From: Marc Hermans Date: Sun, 5 Nov 2023 11:42:10 +0100 Subject: [PATCH] Assign memory to fork options for recompile and execute. Should fix several OOM related issues with the recompile and decompile cycle. --- .../groovy/net/neoforged/gradle/dsl/common/tasks/Execute.groovy | 2 ++ .../gradle/neoform/runtime/tasks/RecompileSourceJar.java | 1 + 2 files changed, 3 insertions(+) diff --git a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/tasks/Execute.groovy b/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/tasks/Execute.groovy index 59875cb41..9ce03eb4c 100644 --- a/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/tasks/Execute.groovy +++ b/dsl/common/src/main/groovy/net/neoforged/gradle/dsl/common/tasks/Execute.groovy @@ -129,6 +129,8 @@ interface Execute extends WithWorkspace, WithOutput, WithJavaVersion, ExecuteSpe java.setWorkingDir(me.getOutputDirectory().get()) java.getMainClass().set(mainClass) java.setStandardOutput(log_out) + + java.setMaxHeapSize(String.format("%dk", Runtime.getRuntime().maxMemory() / 1000)) }).rethrowFailure().assertNormalExitValue() } } diff --git a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java index fa44438a9..7225dd668 100644 --- a/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java +++ b/neoform/src/main/java/net/neoforged/gradle/neoform/runtime/tasks/RecompileSourceJar.java @@ -101,6 +101,7 @@ public RecompileSourceJar() { getOptions().setFork(true); getOptions().setIncremental(true); getOptions().getIncrementalAfterFailure().set(true); + getOptions().getForkOptions().setMemoryMaximumSize(String.format("%dk", java.lang.Runtime.getRuntime().maxMemory() / 1000)); //Leave this as an anon class, so that gradle is aware of this. Lambdas can not be used during task tree analysis. //noinspection Convert2Lambda