# 📓 Journal-Eintrag: 2026-04-16 - Gradle Build-Performance Optimierung ## 🏗️ Status Quo Die Build-Zeiten stiegen nach der Integration von `wasmJs` auf bis zu 32 Minuten an. Dies lag primär daran, dass für fast alle Module (Backend-Domains, Core, Frontend) bei jedem Build auch die JS- und WASM-Targets kompiliert wurden, obwohl diese für die Desktop-Entwicklung nicht benötigt werden. ## 🚀 Optimierungen ### 1. Wasm/JS Feature Toggle (`enableWasm`) - **Neues Flag**: In der `gradle.properties` wurde das Flag `enableWasm=false` eingeführt. - **Root build.gradle.kts**: Wenn `enableWasm=false` ist, werden alle Tasks, die `wasmJs`, `KotlinJs` oder `JsIr` im Namen tragen, global deaktiviert. - **Web-Shell Optimierung**: Das Modul `:frontend:shells:meldestelle-web` wurde so angepasst, dass die Targets `js` und `wasmJs` sowie deren Abhängigkeiten nur dann konfiguriert werden, wenn das Flag aktiv ist. ### 2. Ressourcen-Management & Stabilität - **Memory Settings**: Die JVM-Argumente für den Gradle-Daemon und den Kotlin-Daemon wurden auf 8GB (`-Xmx8g`) vereinheitlicht, um OOM-Fehler bei intensiven JS-Kompilierungen zu vermeiden. - **Parallelisierung**: `maxParallelForks` für Tests wurde auf `CPU/4` reduziert, um dem Gradle-Daemon in Ressourcen-kritischen Phasen mehr Spielraum zu geben und Swapping zu verhindern. - **Worker-Limits**: `org.gradle.workers.max=8` sorgt für eine kontrollierte Auslastung der CPU-Kerne. ### 3. Build-Hygiene - Zusätzliche Deaktivierung von redundanten Resource-Processing Tasks (`jsProcessResources`, `wasmJsProcessResources`), wenn Wasm deaktiviert ist. - Unterdrückung von Node.js Deprecation Warnings in allen Exec-Tasks. ## 📈 Erwartetes Resultat - **Desktop-Entwicklung**: Reduzierung der Build-Zeit um ca. 60-80%, da die kompletten JS/WASM Compiler-Pipelines übersprungen werden. - **Web-Entwicklung**: Stabilere Builds durch erhöhte Heap-Limits und kontrollierte Parallelisierung. --- **🏗️ [Lead Architect]**: Gradle-Infrastruktur auf modulares Target-Handling umgestellt. **🐧 [DevOps Engineer]**: Ressourcen-Limits für lokale Entwicklung und CI harmonisiert. **🧹 [Curator]**: Build-Performance Strategie dokumentiert.