2017-06-22 107 views
4

我有一個應用程序。我通過通過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

回答

1

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

2

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

相關問題