Byggcache och daemon
Utnyttja Gradles byggcache och daemon för att avsevärt snabba upp inkrementella byggen.
Byggcache och daemon är en gratis lektion i Groovy och Gradle: JVM-automatisering och byggsystemutveckling på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Groovy och Gradle: JVM-automatisering och byggsystemutveckling, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling innehåller totalt 4 lektioner.
Effektivisera dina Gradle-byggen
Har du någon gång väntat för länge på att ett Gradle-bygge ska bli klart? I den här lektionen låser vi upp två kraftfulla funktioner som snabbar upp utvecklingen:
- Gradle Daemon: Håller en JVM igång i bakgrunden.
- Build Cache: Återanvänder resultat från tidigare byggen.
De här verktygen är avgörande för att göra inkrementella byggen mycket snabbare!
Möt Gradle Daemon
Gradle Daemon är en långlivad bakgrundsprocess som kör dina Gradle-byggen. Se den som en dedikerad server för dina byggen!
- Den eliminerar JVM:ens startkostnad för varje bygge.
- Den håller projektinformation och cachelagrade data i minnet.
- Det innebär att efterföljande byggen går betydligt snabbare!
Daemon i praktiken: Första körningen
Vi ska se vilken effekt Daemon har. Första gången du kör ett Gradle-kommando kan Daemon behöva startas, vilket tar lite längre tid. Kopiera detta till en build.gradle-fil:
task greet {
doLast {
println "Hello from Gradle!"
}
}Daemon i praktiken: Efterföljande körningar
Kör nu uppgiften igen med gradle greet. Märker ni hur mycket snabbare det går? Det är Daemon som arbetar!
Ni kan kontrollera om Daemon körs med gradle --status och stoppa den med gradle --stop.
Förstå byggcachen
Gradle Build Cache lagrar resultatet från uppgifter som har körts. Om en uppgifts indata inte har ändrats kan Gradle återanvända det cachade resultatet i stället för att köra uppgiften igen.
- Den sparar tid genom att undvika onödigt arbete.
- Den fungerar på olika datorer om en fjärrcache har konfigurerats.
- Lokal cachning är aktiverad som standard.
Förklaring av lokal byggcache
Den lokala byggcachen lagras på er dator, vanligtvis i Gradles användarkatalog (~/.gradle/caches/build-cache).
När en uppgift körs beräknar Gradle en hash av dess indata. Om hashen matchar en post i cachen används det cachade resultatet. Annars körs uppgiften och resultatet lagras.
Cachebara uppgifter
För att en uppgift ska kunna cachas måste den deklarera sina indata och utdata korrekt. Gradle behöver veta vad som går in i en uppgift och vad som kommer ut för att avgöra om den kan cachas.
- Indata: Filer, egenskaper och kataloger som uppgiften använder.
- Utdata: Filer eller kataloger som uppgiften skapar.
Många inbyggda Gradle-uppgifter, till exempel compileJava, är cachebara som standard!
Byggcachen i praktiken
Vi skapar en uppgift som genererar en fil. Kör gradle generateReport en gång och kör den sedan igen. Lägg märke till FROM-CACHE eller UP-TO-DATE i resultatet!
task generateReport {
inputs.property 'version', '1.0'
outputs.file 'build/report.txt'
doLast {
def reportFile = file('build/report.txt')
reportFile.parentFile.mkdirs()
reportFile.text = "Report Version: ${inputs.properties.version}"
println "Generated report.txt"
}
}När cachen inte används
Ibland används inte byggcachen, vilket leder till en ”cache miss”. Vanliga orsaker är:
- Ändrad indata: Alla ändringar i uppgiftens indata, även en tidsstämpel.
- Uppgiften är inte cachebar: Uppgiften deklarerar inte indata och utdata korrekt.
- Cachen är inaktiverad: Den har uttryckligen inaktiverats med
--no-build-cache. - Den lokala cachen har rensats: Cacheposter har tagits bort.
Snabbtest: byggtid
Vilken är den främsta fördelen med Gradle Daemon?
Sammanfattning: snabbare byggen väntar!
Ni har lärt er hur Gradle Daemon och Build Cache avsevärt förbättrar byggprestandan:
- Daemon håller en JVM igång, vilket gör att efterföljande byggen startar snabbare.
- Build Cache återanvänder tidigare resultat från uppgifter och undviker onödigt arbete.
Genom att använda dessa funktioner får ni betydligt snabbare inkrementella byggen och ett smidigare utvecklingsflöde. Nästa steg är att utforska profilering och felsökning av byggen!
Lär dig Groovy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Byggcache och daemon” gratis?
Ja – hela texten till ”Byggcache och daemon” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling, kan Ni uppgradera till CoddyKit PRO. Kursen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling innehåller totalt 4 lektioner.
Vad lär jag mig i ”Byggcache och daemon”?
Utnyttja Gradles byggcache och daemon för att avsevärt snabba upp inkrementella byggen. Ni övar på Groovy och Gradle: JVM-automatisering och byggsystemutveckling med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Groovy och Gradle: JVM-automatisering och byggsystemutveckling?
Du behöver inga förkunskaper. Utbildningen i Groovy och Gradle: JVM-automatisering och byggsystemutveckling på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Byggcache och daemon”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Groovy och Gradle: JVM-automatisering och byggsystemutveckling-lektionen?
Ja. Varje Groovy och Gradle: JVM-automatisering och byggsystemutveckling-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Byggcache och daemon
- Profilering och felsökning av byggen
- Parallell körning och konfiguration
- Inkrementella byggen och indata/utdata för uppgifter