Понимание gradle.properties и java -opts - PullRequest
0 голосов
/ 21 января 2020

Я хочу понять, как запустить gradle.properties и java_opts для android building.

Я знаю, что такое Xmx, Xms, Xss.

Использовать -Xmx => Maximum Heap размер

Использовать -Xms => начальный Java размер кучи

Использовать -Xss => Java размер стека потока

Я хочу понять, как запустить gradle.properties и java_opts для android building.

Я знаю, что такое Xmx, Xms, Xss.

Используйте -Xmx, чтобы указать максимальный размер кучи. Используйте -Xms, чтобы указать начальную Java размер кучи Используйте -Xss для установки Java размера стека потока

У меня есть файл сборки для сборки. Я запускаю его с нехваткой памяти.

docker run -m=256M -it android-image

Содержимое файла gradle.properties

org.gradle.jvmargs=-Xmx1536m

Я хочу получить java.lang.OutOfMemoryError ошибку. Затем я изменю содержимое файла gradle.properties и переменной JAVA_OPTS. И я пытаюсь понять, как работают gradle.properties и JAVA_OPTS.

Как я могу создать OutOfMemoryError при сборке?

1 Ответ

0 голосов
/ 21 января 2020

Как я могу создать OutOfMemoryError при сборке?

Просто создайте огромный объект внутри одной из задач. Например, в build.gradle.kts:

tasks {
   val oomTask by registering {    
       doLast {
           ByteArray(300 * 1024 * 1024) // allocate 300 Mb
       }
   }

   build.dependsOn(oomTask)
}

Далее выполните gradlew build.

Также обратите внимание, что Linux выполняет отложенное выделение памяти. Это означает, что вы получаете OOM только после использования памяти. Например, вы должны создать огромный объект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...