[android-studio] JVM 힙 공간이 부족하여 데몬 만료

방금 Android Studio를 3.5 베타 1로 업데이트했는데

JVM 힙 공간이 부족하여 데몬 만료

빌드가 실행되는 동안 메시지. 또한 빌드를 완료하는 데 더 많은 시간이 걸립니다. 누구든지 이것에 대해 어떤 생각이 있습니까?



답변

다음을 구성하여 React Native 프로젝트 에서이 문제를 해결할 수있었습니다 .

// gradle.properties
org.gradle.daemon=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

// app/build.gradle
android {
    dexOptions {
       javaMaxHeapSize "3g"
    }
}


답변

이는 프로젝트에 대해 구성된 최대 힙 크기 를 늘려서 해결할 수 있습니다 .

IDE를 통해 :

gradle.properties 파일에 아래 줄을 추가합니다. RAM 가용성에 따라 아래의 메모리 크기를 구성 할 수 있습니다.

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m

GUI를 통해 :

설정에 검색 ‘메모리 설정’ 과 증가 IDE 최대 힙 크기데몬 최대 힙 크기를 시스템 RAM의 가용성에 따라.

Android Studio의 메모리 설정


답변

해결책은 Android 빌드 메모리를 늘리는 것입니다.

앱에 더 많은 모듈을 추가하면 Android 빌드 시스템에 대한 엄청난 수요가 발생하고 기본 메모리 설정이 작동하지 않습니다. Android 빌드 중에 OutOfMemoryErrors 를 방지하려면 /android/gradle.properties에 있는 대체 gradle 메모리 설정의 주석 처리를 제거해야합니다 .

org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

android 폴더 내에서 gradle.properties를 찾을 수 있습니다 .

추신

우리가 이것을하는 것은 무엇이며 왜 도움이됩니까?

전체를 이해하기위한 몇 가지 기본 용어를 정리하겠습니다.

데몬 :-데몬은 대화 형 사용자가 직접 제어하지 않고 백그라운드 프로세스로 실행되는 컴퓨터 프로그램입니다.

Android Studio 2.1 은 새로운 기능인 Dex In Process를 지원 합니다.이 기능 은 완전 정리 빌드의 속도를 대폭 향상시키고 Instant Run 성능을 개선 할 수 있습니다.

Dex In Process를 활용하려면 gradle.properties 파일을 수정 하고 org.gradle.jvmargs 속성을 사용하여 Gradle Daemon VM 에 할당 된 메모리 양을 최소 2Gb로 1Gb 늘려야합니다. :

데몬 프로세스에 사용되는 JVM 인수를 지정합니다. 이 설정은 메모리 설정을 조정하는 데 특히 유용합니다.

org.gradle.jvmargs=-Xmx2048m

기본값:

-Xmx10248m -XX:MaxPermSize=256m

기본 Gradle Daemon VM 메모리 할당은 1GB입니다. 이는 dexInProcess를 지원하기에 불충분하므로 이점을 활용하려면 최소 2GB로 설정해야합니다.

Dex in process는 Gradle 과도 공유되는 단일 VM 내에서 여러 DEX 프로세스를 실행할 수 있도록하여 작동하므로 사용 설정하기 전에 추가 메모리를 할당해야합니다.이 메모리는 Gradle과 여러 DEX 프로세스간에 공유됩니다.

모듈 수준 build.gradle 파일의 javaMaxHeapSize를 기본값 인 1GB 이상으로 늘린 경우 Gradle Daemon에 할당 된 메모리를 적절히 늘려야합니다.

할당 된 메모리가 충분하면 Dex in Process가 기본적으로 사용 설정되어 전체 빌드 성능이 향상되고 여러 병렬 VM 인스턴스를 시작 하는 오버 헤드가 제거 됩니다. 그 결과 Instant Run, 증분 및 전체 빌드를 포함한 모든 빌드 시간이 크게 향상되었습니다.

출처 :
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e

https://rnfirebase.io/#increasing-android-build-memory


답변