Java 使用Gradle运行单元测试时,最大堆大小在哪里设置?

Java 使用Gradle运行单元测试时,最大堆大小在哪里设置?,java,gradle,junit,Java,Gradle,Junit,我的OOM单元测试失败,我想知道为什么我需要手动允许更大的maxHeapSize这样: test { maxHeapSize = '4G' } 我假设最大堆没有上限,在GradleAPI源代码中找不到任何东西来证明我错了。但是,使用--info运行gradle清楚地揭示了以下情况: Starting process 'Gradle Test Executor 427'. Working directory: [project-dir] Command: /Library/Java/Java

我的OOM单元测试失败,我想知道为什么我需要手动允许更大的
maxHeapSize
这样:

test {
  maxHeapSize = '4G'
}
我假设最大堆没有上限,在GradleAPI源代码中找不到任何东西来证明我错了。但是,使用
--info
运行gradle清楚地揭示了以下情况:

Starting process 'Gradle Test Executor 427'. Working directory: [project-dir] Command: /Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java -Djava.security.manager=worker.org.gradle.process.internal.worker.child.BootstrapSecurityManager -Dorg.gradle.native=false -javaagent:build/tmp/expandedArchives/org.jacoco.agent-0.8.6.jar_a26f6511a7813217be4cd6439d66563b/jacocoagent.jar=destfile=build/jacoco/test.exec,append=true,inclnolocationclasses=false,dumponexit=true,output=file,jmx=false -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -ea -cp /Users/[user]/.gradle/caches/6.4/workerMain/gradle-worker.jar worker.org.gradle.process.internal.worker.GradleWorkerMain 'Gradle Test Executor 427'
我的问题是上面的
-Xmx512m
来自哪里

接下来,是否有一种方法可以允许无限的最大堆,这是一种完全不合理的做法


中设置了
512m
默认值的可能重复项
512m
是一个折衷方案,适用于中小型项目,并且可以同时运行多个工人。根据报告:

默认情况下限制工作进程的内存

我们的编译、测试等工作人员没有默认值 内存设置直到现在,这意味着我们将使用 JVM给出的默认值是系统内存的1/4 在大多数情况下。这是太多时,运行与高 工人人数。将其限制在256m就足够了 中小型项目。更大的项目将不得不进行 调整此值


接下来,是否有一种方法可以允许无限的最大堆,这是一种完全不合理的做法


在撰写本文时,我还不知道有哪种JVM实现允许无限内存,老实说,我认为这是不可取的,因为它会大大降低系统的速度。

哎哟,这一直在我眼前。非常感谢你。