Technieken voor memory- en CPU-profiling
Gebruik profilingtools om memory leaks, CPU-bottlenecks en inefficiënte codedelen in uw applicaties te identificeren
Technieken voor memory- en CPU-profiling is een gratis Draaiboek voor debuggen in productie en incidentrespons-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Draaiboek voor debuggen in productie en incidentrespons. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Draaiboek voor debuggen in productie en incidentrespons bevat in totaal 4 lessen.
Profilen voor betere prestaties
Welkom bij technieken voor geheugen- en CPU-profiling! In deze les leert u hoe u prestatieknelpunten in uw applicaties kunt vinden.
Profiling is als het maken van een röntgenfoto van uw applicatie. Zo ziet u precies waar uw programma tijd besteedt en bronnen gebruikt, zodat u inefficiënties kunt opsporen.
Geheugenlekken opsporen
Een geheugenlek ontstaat wanneer uw applicatie geheugen blijft vasthouden dat niet langer nodig is. Na verloop van tijd hoopt dit ongebruikte geheugen zich op, waardoor uw applicatie steeds meer bronnen verbruikt.
- Hierdoor kan uw applicatie trager worden.
- Uiteindelijk kan de applicatie zelfs crashen met een foutmelding 'Onvoldoende geheugen'.
- Geheugenprofilers helpen ons deze vergeten objecten te vinden.
CPU-knelpunten begrijpen
Een CPU-knelpunt ontstaat wanneer een deel van uw code buitensporig veel verwerkingskracht gebruikt, waardoor andere bewerkingen moeten wachten. Dit betekent dat uw applicatie te veel tijd aan een specifieke taak besteedt.
- Hierdoor kan uw applicatie traag aanvoelen.
- Dit kan de algehele systeemprestaties beïnvloeden.
- CPU-profilers tonen welke functies of methoden de meeste CPU-cycli verbruiken.
Tools voor geheugenprofiling
Tools voor geheugenprofiling helpen u het geheugengebruik van uw applicatie gedetailleerd te inspecteren. Ze kunnen:
- tonen welke objecten zich momenteel in het geheugen bevinden.
- toewijzingen en vrijgaven van objecten in de loop van de tijd volgen.
- heap dumps genereren: momentopnamen van alle objecten in het geheugen op een specifiek moment.
Populaire tools zijn VisualVM, JProfiler en ingebouwde browserontwikkelaarstools voor webapps.
Codevoorbeeld: geheugenvreter
Dit eenvoudige Java-programma laat een mogelijk scenario voor geheugengroei zien. Als data een globale lijst in een langlopende service zou zijn, zou de lijst voortdurend objecten toevoegen zonder ze vrij te geven, wat tot een geheugenlek zou leiden.
Een geheugenprofiler zou de lijst data markeren als de lijst die steeds meer objecten vasthoudt.
import java.util.ArrayList;
import java.util.List;
public class Main {
private static List<Object> data = new ArrayList<>();
public static void main(String[] args) {
System.out.println("Simulating memory growth...");
for (int i = 0; i < 5; i++) {
// In a real app, this could be millions of objects.
// We add 1MB byte arrays to quickly show growth.
data.add(new byte[1024 * 1024]);
System.out.println("Added " + (i + 1) + "MB to list.");
}
System.out.println("Finished. List size: " + data.size());
// In a profiler, you'd see 'data' retaining objects.
}
}Hulpprogramma's voor CPU-profiling
Hulpprogramma's voor CPU-profiling helpen je te begrijpen waar je applicatie verwerkingstijd aan besteedt. Ze werken meestal als volgt:
- De aanroepstack met regelmatige tussenpozen bemonsteren.
- De uitvoeringstijd van verschillende methoden meten.
- 'Hotspots' identificeren – functies die de meeste CPU-capaciteit gebruiken.
Hulpprogramma's zoals VisualVM, JProfiler, perf (Linux) en het tabblad Performance van Chrome DevTools worden vaak gebruikt.
Codevoorbeeld: CPU-intensieve taak
Dit Java-codefragment bevat een geneste lus die een herhaalde berekening uitvoert. Als deze berekening complexer zou zijn of de lussen veel vaker zouden worden uitgevoerd, zou dit een aanzienlijke CPU-knelpunt kunnen worden.
Een CPU-profiler zou duidelijk laten zien dat de binnenste for-lus en de methode Math.sqrt de meeste CPU-tijd gebruiken.
public class Main {
public static void main(String[] args) {
System.out.println("Starting CPU-intensive task...");
long startTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
// Simulate a complex calculation
for (int j = 0; j < 1000; j++) {
Math.sqrt(j * i); // This operation uses CPU
}
}
long endTime = System.currentTimeMillis();
System.out.println("Task finished in " + (endTime - startTime) + "ms.");
// Profiler would highlight the inner loops as hotspots.
}
}Gegevens uit profiling interpreteren
Wanneer je een profiler uitvoert, zie je verschillende visualisaties:
- Vlamgrafieken: tonen aanroepstacks en de frequentie van functies bovenaan de stack. Bredere 'vlammen' betekenen dat er meer tijd aan is besteed.
- Aanroepbomen/aanroepgrafieken: tonen de volgorde van functieaanroepen en hun afzonderlijke en cumulatieve uitvoeringstijden.
- Heap-snapshots: vermelden objecten op basis van grootte en aantal, en wat ze vasthoudt (objectverwijzingen).
Zoek naar de grootste blokken (CPU) of de grootste verzamelingen objecten (geheugen) om je knelpunten te vinden.
Beste werkwijzen voor profiling
Haal je het maximale uit profiling:
- Profileer in realistische omgevingen: Omgevingen voor staging of vóór productie lijken vaak meer op productie dan lokale ontwikkelmachines.
- Richt je op kleine wijzigingen: Optimaliseer één knelpunt tegelijk en profileer opnieuw om het effect te meten.
- Automatiseer waar mogelijk: Integreer prestatietests in je CI/CD-pijplijn om regressies vroegtijdig op te sporen.
- Monitor voortdurend: Gebruik monitoringhulpprogramma's om prestatievermindering ook na het profileren op te merken.
Korte controle
Inzicht in de symptomen van prestatieproblemen is de eerste stap bij het opsporen van fouten.
Samenvatting: profiling voor prestaties
In deze les hebben we geheugen- en CPU-profiling verkend. Je hebt geleerd:
- Wat geheugenlekken en CPU-knelpunten zijn.
- Hoe profilinghulpprogramma's helpen deze problemen te identificeren.
- Voorbeelden van code die zulke problemen kan veroorzaken.
- Tips voor het interpreteren van profilinggegevens en beste werkwijzen.
Het beheersen van deze technieken is cruciaal voor het bouwen van robuuste en goed presterende applicaties!
Leer Draaiboek voor debuggen in productie en incidentrespons met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Technieken voor memory- en CPU-profiling” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Draaiboek voor debuggen in productie en incidentrespons, waaronder “Technieken voor memory- en CPU-profiling”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Draaiboek voor debuggen in productie en incidentrespons bevat in totaal 4 lessen.
Wat leer ik in “Technieken voor memory- en CPU-profiling”?
Gebruik profilingtools om memory leaks, CPU-bottlenecks en inefficiënte codedelen in uw applicaties te identificeren Je oefent met Draaiboek voor debuggen in productie en incidentrespons door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Draaiboek voor debuggen in productie en incidentrespons te beginnen?
Ervaring vooraf is niet nodig. Draaiboek voor debuggen in productie en incidentrespons op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Technieken voor memory- en CPU-profiling”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Draaiboek voor debuggen in productie en incidentrespons?
Ja. Elke les over Draaiboek voor debuggen in productie en incidentrespons bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Live applicaties op afstand debuggen
- Debuggen na incidenten met core dumps
- Technieken voor memory- en CPU-profiling
- Distributed tracing voor latency-hotspots