通过gradlew使用-Xmx和-Xms运行应用程序

问题描述:

我有一个应用程序。我通过通过gradlew使用-Xmx和-Xms运行应用程序

gradlew run-app 

或调试

gradlew debug-app 

它可以运行它。如何将'-Xmx'参数传递到我运行(调试)的应用程序中? 是否可以这样做而不用编辑build.gradle文件?

我发现这个 Gradle unknown command-line option '-X'

我收到了类似的错误,当我尝试

gradlew debug-app -Xmx2000m 

错误

FAILURE: Build failed with an exception. 

* What went wrong: 
Problem configuring task :debug-app from command line. 
> Unknown command-line option '-X'. 

我试图GRADLE_USER_HOME目录下创建一个文件gradle.properties(默认情况下,它是USER_HOME/.g radle)。

org.gradle.jvmargs=-XX\:MaxHeapSize\=4256m -Xmx4256m -Xms2000m 

我也试图org.gradle.jvmargs=-Xmx2000m项目文件夹gradle.properties英寸

即使这样,当我运行一个应用程序,我看到COMMITED内存大小为< 520 MIB

enter image description here

这是当我运行它作为一个正常的Java应用程序

enter image description here

在第二种情况下,当我使用-Xms,-Xmx作为普通Java应用运行应用程序时,Commited Memory大小约为3.5 GiB,因为我通过了-Xmx4512m -Xms2512m参数。

+0

我编辑我的答案 – ToYonos

gradle.properties文件补充一点:

org.gradle.jvmargs=-Xmx2000m 

here

org.gradle.jvmargs

指定用于守护进程的jvmargs。设置为 对调整内存设置特别有用。目前, 默认设置在内存方面非常慷慨。

编辑:我的回答怎么样的gradle守护进程jvm,而不是应用程序jvm。您必须使用jvmArgs property

用于为进程启动JVM的额外参数。 不包括系统属性和最小/最大堆大小。

+0

是什么'org.gradle.jvmargs = -Xms1024m -Xmx1024m -Xss1M -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8'在'gradle.properties'意思 –

+1

它为守护进程设置特定的jvmargs – ToYonos

首先,感谢@ToYonos为我带来了正确的方向。

其次,我在这里找到了解决方案https://stackoverflow.com/a/9648945/4587961。 我从命令行运行我的应用程序。

set GRADLE_OPTS=-Xms1724m -Xmx5048m 
gradlew debug-app 

注意,CMD Windows命令SET本地工作,因此,如果您关闭终端,GRADLE_OPTS不会设置。对于Linux,您可以使用

export GRADLE_OPTS=WHATEVER 

这就是我想要实现的。

enter image description here