#java #gradle #jvm #java-11
#java #gradle #jvm #java-11
Вопрос:
Я пытаюсь исправить размер кучи памяти, используя -Xmx50M в файле build.gradle, это не работает, размер памяти всегда превышает 50M.
Подробные сведения :
Мой build.gradle
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.10'
}
group 'com.karrty'
repositories {
mavenCentral()
}
ext {
junitVersion = '5.7.1'
}
sourceCompatibility = '17'
targetCompatibility = '17'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
application {
mainModule = 'com.karrty.karrtyversion1'
mainClass = 'com.karrty.karrtyversion1.Principle.main'
}
javafx {
version = '16'
modules = ['javafx.controls', 'javafx.fxml']
}
dependencies {
implementation('org.controlsfx:controlsfx:11.1.0')
}
run {
jvmArgs = [
"-Xms50m",
"-Xmx50m"
]
}
Снимок экрана проблемы
как вы можете видеть, приложение разместило 500 МБ в памяти и использует почти 250 МБ, даже если я указал размер кучи памяти в 50 МБ.
Ответ №1:
Я не уверен на 100%, но я думаю, что вы должны использовать gradle.properties для установки -Xmx50M
. Вы можете проверить официальные документы, чтобы убедиться. gradle.properties должен выглядеть следующим образом
org.gradle.jvmargs=-Xmx512m "-XX:MaxMetaspaceSize=256m"
Это значение по умолчанию, и вы можете изменить его в зависимости от того, что вам нужно сделать.
Комментарии:
1. к сожалению, это тоже не работает, я думаю, что вставка аргументов виртуальной машины в gradle.properties или в build.gradle (как я и делал) одинакова, единственное отличие — это обозначение
Ответ №2:
По какой-то причине использование коротких аргументов виртуальной Xms50m
машины и Xmx50m
не работает с gradle, но полные выражения -XX:MaxHeapSize=50m
и -XX:InitialHeapSize=50
работают, если у вас также есть такая же проблема, просто замените эти короткие выражения их полными выражениями, и это сработает.