Hey folks, is increased memory usage by K/N compil...
# kotlin-native
n
Hey folks, is increased memory usage by K/N compiler expected in 1.3.70 (or 71)? I’m getting
java.lang.OutOfMemoryError: Java heap space
while building iOS frameworks from klibs.
Copy code
$ ./gradlew build
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: <https://docs.gradle.org/5.6.2/userguide/gradle_daemon.html>.
Daemon will be stopped at the end of the build stopping after processing

> Configure project :
Kotlin Multiplatform Projects are an experimental feature.
Expiring Daemon because JVM heap space is exhausted
Exception in thread "Thread-8" java.lang.OutOfMemoryError: Java heap space
        at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1896)
        at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2114)
        at java.base/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)
        at org.gradle.launcher.daemon.server.exec.DaemonConnectionBackedEventConsumer$ForwardEvents.getNextEvent(DaemonConnectionBackedEventConsumer.java:68)
        at org.gradle.launcher.daemon.server.exec.DaemonConnectionBackedEventConsumer$ForwardEvents.run(DaemonConnectionBackedEventConsumer.java:55)

> Task :linkAwesomeReleaseFrameworkIosArm64
e: Compilation failed: Java heap space

 * Source files:
 * Compiler version info: Konan: 1.3.71 / Kotlin: 1.3.71
 * Output kind: FRAMEWORK

e: java.lang.OutOfMemoryError: Java heap space
        at java.base/java.util.ArrayList.iterator(ArrayList.java:976)
        at org.jetbrains.kotlin.backend.konan.optimizations.Devirtualization$DevirtualizationAnalysis$CondensationBuilder.findMultiNodesOrder(Devirtualization.kt:1726)
        at org.jetbrains.kotlin.backend.konan.optimizations.Devirtualization$DevirtualizationAnalysis$CondensationBuilder.build(Devirtualization.kt:546)
        at org.jetbrains.kotlin.backend.konan.optimizations.Devirtualization$DevirtualizationAnalysis.analyze(Devirtualization.kt:633)
        at org.jetbrains.kotlin.backend.konan.optimizations.Devirtualization.run(Devirtualization.kt:1221)
        at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$devirtualizationPhase$1.invoke(BitcodePhases.kt:97)
        at org.jetbrains.kotlin.backend.konan.llvm.BitcodePhasesKt$devirtualizationPhase$1.invoke(BitcodePhases.kt)
        at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:58)
        at org.jetbrains.kotlin.backend.konan.KonanLoweringPhasesKt$makeKonanModuleOpPhase$1.invoke(KonanLoweringPhases.kt:56)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:128)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:24)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:127)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:105)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:128)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:24)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:127)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:105)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:128)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:24)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:127)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:105)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:23)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:128)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:24)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:127)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:105)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:128)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:24)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:127)
r
Try increasing memory used by Gradle. eg add
org.gradle.jvmargs=-Xmx2g
in
gradle.properties
. See also https://docs.gradle.org/current/userguide/build_environment.html#sec:configuring_jvm_memory
n
I was at 512m already, bumping to 2g helped. Thanks @russhwolf.
m
Same thing happened to me while building a macOS framework