Opplæring: Analysere profileringsdata
Mål
Analysere data som er samlet inn fra profileringen av en
Java-prosess, ved å bruke visningene Profilering og Logging i
perspektivet Logging på disse måtene:
- Identifisere objektene og metodene som bruker mest tid
- Identifisere minneintensive klasser
- Måle programsamtidighet
- Finne minnelekkasjer
- Bla gjennom hver utføring av en metode som en funksjon av tid
- Få en mer omfattende oversikt over utføringsgangen som en funksjon av tid
- Identifisere aktive tråder
- Identifisere når tråder er aktive
- Identifisere ofte kalte metoder
- Måle innsamling av dataavfall
- Identifisere ulike faser i programutføringen
- Granske ulike metodeaktiveringer
- Granske kalleren av en metode
Nødvendig tid
1 time
Før du begynner
Før du begynner med denne opplæringen, må du
- Installere Eclipse-plattformen, blant annet plattformen for test- og ytelsesverktøy (TPTP).
- Ha et eksempel på en profileringsfil (hcframe.jar) som er klar til å importeres. Filen bør være lagret i denne katalogen:
TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0
Beskrivelse
I denne opplæringsdelen bruker du ulike profilerings- og loggingsvisninger til å analysere eksempelet PerformanceExample.class. Eksempelet åpner en ramme som inneholder to knapper.
Du kommer til å fullføre disse oppgavene:
- Åpne perspektivet Profilering og logging fra arbeidsbenken
- Profilere klassen PerformanceExample
- Analysere profileringsinformasjonen
Du kan oppdatere visningene mens applikasjonen overvåkes, ved å
klikke på knappen Oppdater visninger
.
Klikk på Åpne perspektiv> Annet > Profilering og logging i menyen Vindu .
Slik profilerer du klassen PerformanceExample:
- Klikk på rullegardinmenyen Profiler
og velg Profiler. En dialogboks blir åpnet.
- Dobbeltklikk på Ekstern Java-applikasjon for å opprette en ny konfigurasjon.
- Bytt til flippen Hoved.
- Skriv org.eclipse.hyades.test.collection.framework.PerformanceExample i feltet Klassenavn.
- Klikk på Legg til Jar for å legge til jar-filen som inneholder denne klassen.
- Velg TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
- Klikk på Åpne. Jar-filen blir lagt til.
- Klikk på flippen Overvåker. Du kan oppgi profileringskriteriene på denne flippen.
- På flippen Overvåker utvider du noden Java-profilering, velger Grunnleggende minneanalyse og merker av i avmerkingsboksen ved siden av.
Dette legger til minnerelatert informasjon i listen over informasjonstyper som bør samles inn fra applikasjonen.
- Velg Analyse av utføringstid og merk av i boksen ved siden av.
Når dette alternativet er valgt, kan du bruke statistikkvisningene til å analysere tidsrelatert informasjon
Du må samle inn grafiske detaljer for utføringsflyt for å kunne bruke visningene Utføringsflyt og Metodeaktivering. Fordi formålet med dette eksempelet er å veilede deg gjennom alle
profileringsvisningene, samt visningene Utføringsflyt og
Metodeaktivering, velger du Analyse av utføringstid, klikker på Rediger alternativer og
velger Vis grafiske detaljer for utføringsflyt i dialogboksen Rediger profileringsalternativer.
Klikk også på avmerkingsboksen Samle inn Boundary-klasser som
ekskluderes av filtersettet og sett Dybde for Boundary-klasse til 1. Klikk deretter på Fullfør.
- Med profileringsfilersett kan du oppgi delsettet av informasjon som du vil analysere. Dette er nyttig hvis du vil filtrere ut klasser eller pakker som befinner seg utenfor området du vil analysere.
Velg datainnsamleren Java-profilering og klikk på Rediger alternativer. Dialogboksen Filtersett åpnes. Klikk på Legg til under Innhold i valgt filtersett, for
å legge til klasser eller pakker som du vil samle inn data for.
Dialogboksen Legg til filter blir åpnet.
- Du profilerer denne klassen ved å skrive org.eclipse.hyades.test.collection.framework.* for Class.
- Oppgi metodenavnet som *, for å inkludere bare metoder som er knyttet til dette eksempelet.
- Klikk på OK. Filtreringskriteriene blir lagt til på innholdslisten.
- Du kan ekskludere andre eksisterende klasser fra innholdslisten, ved å klikke på Inkluder under
Regel-kolonnen for klassen, og endre den til Ekskluder.
- Klikk på Neste til siden Grenser. Denne siden styrer mengden data som skal samles inn, basert på medgått tid eller antallet metodeaktiveringer. Godta standardverdiene. Klikk på
Fullfør for å lukke og ta i bruk endringene.
- Klikk på flippen Mål. ProfileProject og Default Monitor
er standard profileringsressurser som kan brukes til å lagre data fra
denne profileringssesjonen.
- Klikk på Profiler.
- De nødvendige profileringsressursene blir opprettet og agenten og prosessen blir vist i visningen Profileringsovervåker.
- Aktiver visningen av overvåkere ved å velge Distribuert layout, som vist på det følgende skjermbildet.
Du kan nå se overvåkeren som grupperer dataene dine, og maskinen som
arbeidsbenken kjøres på.

Vise utføringsgangen over en tidsperiode
Du kan undersøke utføringen av applikasjonen ved å bruke visningen Utføringsflyt og tabellen.
Utføringen av et helt program blir vist grafisk og i et tabellformat i denne visningen. Tiden blir vist på den loddrette aksen. Utføringsflyttabellen blir åpnet under visningen Utføringsflyt, og viser hver tråd og metodene som blir kalt av hver tråd.
- I visningen Profileringsovervåker velger du din overvåker og høyreklikker på og velger Åpne i > Utføringsflyt for å åpne visningen Utføringsflyt. Visningen Utføringsflyt blir åpnet.
- Du undersøker en bestemt metode ved å klikke på den for å velge den. Alle tilhørende kalte metoder blir deretter
uthevet i gult. Den loddrette lengden på det uthevede området er en angivelse av basistiden for metoden. Den nøyaktige verdien for basistiden blir vist på statuslinjen.

Når du flytter markøren over et objekt i visningen, vises detaljert informasjon i statusfeltet nederst i vinduet.
- Bruk Zoom inn-verktøyet
for å aktivere markøren,
og pek og klikk for å forstørre et område.
Merk: Du kan oppdatere visningene mens applikasjonen overvåkes, ved å
klikke på knappen Oppdater visninger
.
Identifisere aktive tråder
I visningen Utføringsflyt inneholder hver tråd perioder med
aktivitet, som identifiseres av en mengde metodekall. I symbolsk fremstilling
er den første kalte metoden en strek, og metodene som den
deretter kaller opp, blir vist som andre streker til høyre for denne. Rekkefølgen av
metodekall går seg fra venstre mot høyre, og de
aktive delene av en tråd identifiseres ved hjelp av dette strekforløpet.
Når du velger hele seksjonen som inneholder sekvensen med metodekall,
blir basistiden som er brukt for å utføre denne sekvensen, vist på
statuslinjen. Hvis du vil se hvilken basistid tråden er aktiv for, må du finne differansen
mellom disse tidene:
- Pek på den øverste vannrette linjen i det valgte gule området for å vise
den tilsvarende basistiden på statuslinjen.
- Pek deretter på den nederste kanten i det valgte gule området (som dekker
utføringsperioden når metodesekvensen er aktiv) og vis
basistiden ved det punktet.
Tips
- Hvis diagrammet er vanskelig å lese, kan du zoome inn
på det aktuelle området.
- Når du velger en metode, blir alle tilhørende kalte metoder uthevet i gult.
- Du kan dra og slippe visningene på arbeidsbenken og samtidig organisere dem slik du ønsker.
- Når du peker med musen, blir den tilsvarende basistiden vist på statuslinjen.
- Du kan tilbakestille visningen ved å klikke på knappen Hjem.
Identifisere ofte kalte metoder
Slik identifiserer du metoder som kalles ofte:
- Bruk zoomeverktøyet
for
å forstørre en sekvens med metodekall.
- Se etter streker med samme farge i det valgte området. Disse
strekene identifiserer metoder fra samme klasseforekomst, som er kalt
flere ganger.
- Kontroller lengden på strekene av forskjellig farge (hver av dem
representerer en metode). Jo lengre strek, jo mer utføringstid
for metoden.
Måle innsamling av dataavfall
Normalt er det umulig å se at det er utført innsamling av dataavfall for et
objekt ved å undersøke strekene i en brukertråd i denne visningen.
Gjør slik:
- Som standard er tråden for innsamling av dataavfall skjult. Aktiver den ved å velge
Tråder > GC på hurtigmenyen for visningen.
- Se i kolonnen lengst til venstre i
denne visningen. Denne kolonnen er
reservert for tråden for innsamling av dataavfall, og den kalles GC-trådkolonnen.
- Se om det finnes et smalt rektangel i GC-trådkolonnen. Rektangelet
finnes sannsynligvis et stykke nedenfor de fleste av metodekallene til
objektet. Dette rektangelet blir vist i GC-trådkolonnen når det er utført
innsamling av dataavfall for et objekt.
Identifisere ulike faser i programutføringen
Identifisere initialiseringsfasen
- Bruk zoomeverktøyet
for
å forstørre sekvensen med metodekall øverst på
hovedtråden.
- Merk deg metodene som er merket med -init-.
- Klikk for å velge en slik metode. Statuslinjen blir oppdatert
for å vise at metoden hjelper til med initialiseringen
(tildeling av verdier til variabler som brukes i applikasjonen).
Analysere metoder ved hjelp av visningen Metodeaktivering
- Velg enten en overvåker eller en agent i visningen Profileringsovervåker. Høyreklikk og velg Åpne i > Utføringsflyt. Visningen Utføringsflyt blir åpnet.
- Velg metoden du vil undersøke, høyreklikk og velg
Vis metodeaktivering.
- Bruk zoomeverktøyet
for
å forstørre en del av skjermbildet. Strekene er fargekodet etter
klasse og er knyttet sammen med vannrette linjer som representerer
metodekall.
- Velg en metode ved å klikke på navnet.
- Klikk på knappen Oppdater visninger
for å være
sikker på at du ser på oppdatert informasjon.
- Legg merke til denne linjen:

Denne linjen viser navnet på metoden, etterfulgt av n/m, der n er aktiveringen som blir vist av
det totale antallet m aktiveringer.
- Klikk på Forrige
og
Neste
for å
bla gjennom alle aktiveringene for den valgte metoden (eller
hver melding til det valgte objektet). Brøken på verktøylinjen endres for å angi hvilken aktivering du ser på.
Finne kalleren av en metode
Når du skal finne kalleren av en metode, utfører du disse trinnene som leder videre til visningen
Metodeaktivering:
- Du viser kalleren av en metode ved å klikke på knappen Vis kaller
. Metoden blir vist sammen med kalleren til venstre for den.
- Hvis du vil ha flere opplysninger om kalleren av en metode for
hver nye aktivering du viser, setter du markøren på streken som representerer
kalleren i visningen. Statuslinjen viser opplysninger om kalleren.
- Hvis du vil vise metoden som en valgt metode kaller, klikker du på knappen Vis kalt metode
.
(C) Copyright IBM Corporation 2000, 2006.