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

时间:2017-06-22 14:12:10

标签: gradle memory-management jvm gradlew

我有一个申请。我通过

运行它
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.properties目录中创建文件GRADLE_USER_HOME(默认情况下,它是USER_HOME / .gradle)。

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

我还尝试在项目文件夹org.gradle.jvmargs=-Xmx2000mgradle.properties

即便如此,当我运行应用程序时,我看到Commited Memory大小是< 520 MiB

enter image description here

这是我将其作为普通Java App运行的时候

enter image description here

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

3 个答案:

答案 0 :(得分:7)

使用应用程序插件可以使用 applicationDefaultJvmArgs 属性

apply plugin: 'application'    
applicationDefaultJvmArgs = ["-Xms1024m", "-Xmx2048m"]

参数将应用于运行任务并启动应用程序的脚本

more info

答案 1 :(得分:5)

gradle.properties文件中添加:

org.gradle.jvmargs=-Xmx2000m

来自here

  

<强> org.gradle.jvmargs

     

指定用于守护程序进程的jvmargs。设置是   特别适用于调整内存设置。此刻   默认设置对内存非常慷慨。

编辑:我的答案是关于gradle守护进程jvm,而不是app jvm。您必须使用jvmArgs property

  

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

答案 2 :(得分:5)

首先,感谢@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