Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Configure the Dokka Gradle plugin and its tasks with code copied and …
…adapted from "gradle-common", and resolve heap memory issues A source commit: huanshankeji/gradle-common@c1c69c3 `java.lang.OutOfMemoryError: Java heap space` occurs when running the `dokkaGenerate` Gradle task without further configuration and is resolved with the approach from Kotlin/dokka#3885 (comment). The solution code `dokkaGeneratorIsolation = ClassLoaderIsolation()` has to be added to the subproject build scripts (the convention plugin) to work. Moreover, this happens when the heap space is not enough: ```text The Daemon will expire immediately since the JVM garbage collector is thrashing The project memory settings are likely not configured or are configured to an insufficient value. The memory settings for this project must be adjusted to avoid this failure. These settings can be adjusted by setting 'org.gradle.jvmargs' in 'gradle.properties'. The currently configured max heap space is '2 GiB' and the configured max metaspace is 'unknown'. ``` Therefore, `Xmx` in `org.gradle.jvmargs` is increased all the way to 32 GB. 4 GB and 8 GB still cause GC thrashing, and 16 GB is enough but the task takes more time compared to 32 GB with swap. The actual max memory usage is about 30 GB with the 32 GB max heap size. This seems to be caused by parallelism so to reduce the max memory usage, the `--max-workers` Gradle argument can be used and is tested to work. `--no-parallel` doesn't make a difference as tested, however. Eventually, after the 2 issues above are fixed, the task still fails because of Kotlin/dokka#3900.
- Loading branch information