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

aor9mmx1  于 2022-11-07  发布在  其他
关注(0)|答案(4)|浏览(214)

我有一个应用程序。我通过

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/.gradle)。

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

我还尝试将org.gradle.jvmargs=-Xmx2000m放在项目文件夹gradle.properties中。
即使这样,当我运行应用程序时,我也会看到提交的内存大小〈520 MiB

这是我将其作为普通Java应用程序运行的时候

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

zd287kbt

zd287kbt1#

将以下内容添加到gradle.properties文件中:

org.gradle.jvmargs=-Xmx2000m

here开始

组织.分级.jvmargs

指定用于守护程序进程的jvmargs。此设置对于调整内存设置特别有用。目前,默认设置在内存方面非常慷慨。
编辑:我的答案是,gradle守护进程JVM怎么办,而不是app JVM。
用于启动进程的JVM的额外参数。不包括系统属性和最小/最大堆大小。

mklgxw1f

mklgxw1f2#

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

这就是我想要达到的目标。

tquggr8v

tquggr8v3#

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

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

这些参数将应用于runtask和应用程序的启动脚本
more info

g6ll5ycj

g6ll5ycj4#

在我的情况下,使缓存无效并重新启动android studio(自动重新启动),然后重新启动android studio后错误将消失

那么

相关问题