2.2 KiB
2.2 KiB
📓 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.propertieswurde das FlagenableWasm=falseeingeführt. - Root build.gradle.kts: Wenn
enableWasm=falseist, werden alle Tasks, diewasmJs,KotlinJsoderJsIrim Namen tragen, global deaktiviert. - Web-Shell Optimierung: Das Modul
:frontend:shells:meldestelle-webwurde so angepasst, dass die TargetsjsundwasmJssowie 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:
maxParallelForksfür Tests wurde aufCPU/4reduziert, um dem Gradle-Daemon in Ressourcen-kritischen Phasen mehr Spielraum zu geben und Swapping zu verhindern. - Worker-Limits:
org.gradle.workers.max=8sorgt 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.