Java >> Java tutorial >  >> Java

Nøglebegreber om brug af JProfiler

JProfiler er et værktøj til at analysere, hvad der foregår inde i en JVM . E-J Technologies har udviklet dette værktøj. Den mest almindelige brug er til CPU-profilering eller hukommelsesanalyse. I dette indlæg vil jeg beskrive nogle få nøglebegreber om brug af JProfiler.

Enhver softwareudvikler skal bruge JProfiler eller lignende værktøjer med VisualVM eller JDK, når de forbedrer ydeevnen af ​​en virksomhedsapplikation. Tidligere havde jeg vist, hvordan man bruger JProfiler til test af ydeevne.

JProfiler fokuserer på tre forskellige emner, der kan hjælpe udviklere med at analysere deres applikation.

  • Metodekald – Dette viser, hvad din applikation gør med metodekald, og hvor ydeevnen kan forbedres.
  • Tråd og lås – For at finde problemer med flere tråde, bør du tjekke tråd- og låseanalysen, som JProfiler leverer.
  • Tildelinger – Du kan analysere genstandene på dyngen, referencekæder og affaldsindsamling. Derfor hjælper det med at løse problemer med hukommelseslækage.

JProfiler leverer også databaseanalyse, der kan hjælpe med at forstå, om der er nogen præstationsproblemer med databaseforespørgsler. Det vil jeg ikke komme ind på i dette indlæg.

JProfiler-indstillinger

Der er to måder, du kan indsamle data på, mens du bruger JProfiler.

  • Sampling – Dette giver ikke nødvendigvis nøjagtigheden af ​​de indsamlede data. Denne funktion giver ikke statistik på metodeniveau. Fordelen ved at bruge denne funktion er, at systemets ydeevne ikke påvirkes, når du kører JProfiler.
  • Instrumentering – Denne tilstand indsamler alle data, men også tunge på ydeevnen, der påvirker applikationen. Fordelen er nøjagtigheden af ​​dataene. Hvis du laver præstationsanalyse, bør dette være dit standardvalg, selv med den ulempe, at det giver store data, der er nyttige til at analysere ydeevnen.

Sådan kører man JProfiler på et kørende program

JProfiler tilbyder to tilstande til at starte profileringen af ​​en applikation. Hvis du kører i lokal tilstand, skal du vælge dataindsamlingstilstand, når du starter JProfiler. I denne tilstand kører applikationen og JProfiler på den samme maskine. Anbefales normalt ikke.

I fjerntilstand starter du din JProfiler-agent på en ekstern maskine, sandsynligvis den samme maskine, hvor applikationen kører. Og fra din lokale JProfiler-installation vil du oprette forbindelse til JProfiler-agenten. For at gøre dette skal du bruge IP-adressen på fjernmaskinen samt porten, hvor JProfiler-agenten kører . Kort sagt, du forbinder JProfiler GUI til en ekstern JProfiler-agent, der profilerer din applikation.

Sådan analyserer du applikationsydelse ved hjælp af JProfiler

Hvis du kører en præstationstest på din applikation, stopper du profileringen, når præstationstesten stopper. Når profileringen er færdig, skal JProfiler GUI give et øjebliksbillede af de profilerede data.

I dette øjebliksbillede vil vi have data til ydelsesanalyse antallet af genererede objekter, metodekald, affaldsopsamling, hukommelseslækager. Vi vil gennemgå disse nøglebegreber fra JProfiler snapshot-data nu.

Oversigtssiden på Telemetries som vist nedenfor vil give dig en idé om metrics såsom affaldsindsamlingsaktivitet, hukommelse, tråde, klasser og CPU-belastning.

CPU-visninger

CPU-visninger viser antallet af henrettelser, opkaldsrelationer for hver metode i applikationen. I CPU-visninger kan du finde enhver specifik metode, du har mistanke om, kan forårsage problemer med ydeevnen. Dette er en fantastisk udsigt til at analysere, hvad der kan være synderen i din ansøgning.

Opkaldstræ

Call Tree viser en hierarkisk visning af alle de metoder, der kaldes under udførelsen af ​​din applikation. JProfiler hjælper med at sortere metoderne med deres samlede eksekveringstider.

Som vist ovenfor kan vi se, at metoden til at læse data fra Redis Cache tager mest tid.

Hot Spots

I samme visning af CPU-visninger er der mulighed for Hot Spots. Denne visning kan sortere metoderne baseret på forskellige faktorer, såsom individuel eksekveringstid, samlet eksekveringstid, gennemsnitlig eksekveringstid og antal opkald.

Live Memory

Live memory-visning viser hukommelsesallokering. Det er her, vi kan finde ud af, om der er nogen hukommelseslækage.

Alle objekter

Visningen Alle objekter vil vise alle de objekter, der blev oprettet under udførelse af applikationen og størrelsen af ​​disse objekter.

Konklusion

I dette indlæg viste jeg, hvordan man kan nogle nøglebegreber om brug af JProfiler til præstationsanalyse. JProfiler er et kraftfuldt værktøj, hvis det bruges effektivt. Der er mange funktioner i JProfiler, og det kan være overvældende, mens du bruger værktøjet. Jeg håber, at dette indlæg vil hjælpe dig med at bruge JProfiler til at analysere din ansøgning.

Referencer

  1. JProfiler Introduktion – JProfiler Introduktion


Java tag