Självstudiekurs: Analysera profileringsdata

Mål

För att kunna analysera data som samlas in från profileringen av en Java-process använder du profilerings- och loggningsvyerna med profilerings- och loggningsperspektiven på följande sätt:

Tids som krävs

1 timme

Innan du börjar

Innan du börjar den här självstudiekursen behöver du:

  1. Installera Eclipse-plattformen inklusive TPTP (plattformen för test- och prestandaverktyg).
  2. Förbereda exempelprofileringsfilen (hcframe.jar) för import. Filen bör ligga i följande katalog:
    TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0

Beskrivning

I den här självstudiekursen använder du olika profilerings- och loggningsvyer för att analysera exemplet PerformanceExample.class. I exemplet öppnas en ruta som innehåller två knappar.

Du utför följande uppgifter:

  1. Öppna profilerings- och loggningsperspektivet i arbetsmiljön
  2. Profilera klassen PerformanceExample
  3. Analysera profileringsinformationen

För att uppdatera vyerna medan tillämpningen övervakas klickar du på knappen Uppdatera vyer  En knapp med stiliserad ikon .

Öppna profilerings- och loggningsperspektivet i arbetsmiljön

På menyn Fönster klickar du på Öppna perspektiv > Övriga > Profilering och loggning.

Profilera klassen PerformanceExample

För att profilera klassen PerformanceExample utför du följande steg:

  1. Klicka på listmenyn Profil  En knapp med stiliserad ikon och välj Profil. Dialogrutan Starta profil öppnas.
  2. Dubbelklicka på Extern Java-tillämpning för att skapa en ny konfiguration.
  3. Växla till fliken Huvud.
  4. Skriv org.eclipse.hyades.test.collection.framework.PerformanceExample i fältet Klassnamn.
  5. Klicka på Lägg till JAR för att lägga till JAR-filen som innehåller den här klassen.
  6. Välj TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
  7. Klicka på Öppna. JAR-filen är tillagd.
  8. Klicka på fliken Övervakare. Du kan ange profileringsvillkor på den här fliken.
  9. På sidan Övervakare expanderar du noden som är märkt Java-profilering, väljer Allmän minnesanalys och markerar kryssrutan bredvid noden. På så sätt läggs minnesrelaterad information till i listan över informationstyper som ska samlas in från tillämpningen.
  10. Välj Körningstidsanalys och markera kryssrutan bredvid noden. När det här alternativet är markerat kan du använda statistikvyerna för att analysera tidsrelaterad information. Du måste samla in grafiska detaljer för körning för att kunna använda körningsflödes- och metodanropsvyerna. Eftersom syftet med det här exemplet är att leda dig genom alla profileringsvyerna, t.ex. körningsflödesvyn och metodanropsvyn väljer du Körningstidsanalys, klickar på Redigera alternativ och väljer Visa körningsflödet med grafiska detaljer i dialogrutan Redigera profileringsalternativ. Klicka också på kryssrutan Samla in gränsklasser som har exkluderats med filteruppsättningen och ange Gränsklassdjup som 1. Klicka på Slutför.
  11. Via Profileringsfilteruppsättning finns möjlighet att ange delmängder för information som du vill analysera. Det är användbart om du vill filtrera ut klasser eller paket som inte ligger inom gränserna för mängden som du vill analysera.
    Välj datainsamlingsfunktionen Java-profilering och klicka på Redigera alternativ, så öppnas dialogrutan Filteruppsättning. Under Innehåll i den valda filteruppsättningen, klickar du på Lägg till för att lägga till klasser eller paket som du vill samla in data för. Dialogrutan Lägg till filter öppnas.
  12. För att profilera den här klassen skriver du org.eclipse.hyades.test.collection.framework.* som Klass.
  13. Ange Metodnamn som * för att endast innefatta metoder som relaterar till det här exemplet.
  14. Klicka på OK. Filtervillkoret läggs till i innehållslistan.
  15. För att exkludera andra befintliga klasser från filterinnehållslistan klickar du på Inkludera under kolumnen Regel för klassen, och ändrar det till Exkludera.
  16. Klicka på Nästa för att gå vidare till sidan Gränser. På sidan anger du mängden data som ska samlas in, baserat antingen på tidsåtgång eller antal metodanrop. Acceptera standardinställningarna. Genomför ändringarna och avsluta genom att klicka på Slutför.
  17. Klicka på fliken Destination. ProfileProject och Standardövervakare är de standardinställda profileringsresurserna. De kan användas till att lagra data från den här profileringsessionen.
  18. Klicka på Profil.
  19. De begärda profileringsresurserna skapas. Agenten och processen visas i profileringsövervakningsvyn. 
  20. Aktivera visningen av övervakare genom att välja Distribuerad layout som visas i följande skärminfångst. På så sätt kan du se övervakaren som grupperar data liksom datorn du kör arbetsmiljön på.

    Profileringsövervakare som visar resursernas hierarki och listmenyn för att kunna kontrollera resurserna och dölja dem

Analysera profileringsinformationen

Visa körningsfunktionalitet över en tidsperiod.

Du kan utföra körning av tillämpningen med hjälp av körningsflödesvyn och -tabellen. Körningen av hela programmet visas grafiskt i den här vyn och i tabellformat. I körningsflödesvyn visas tiden på den vertikala axeln. Körningsflödestabellen öppnas under körningsflödesvyn och visar varje tråd samt metoderna som anropas av varje tråd.

  1. I profileringsövervakningsvyn väljer du övervakare, högerklickar och väljer Öppna med > Körningsflöde för att öppna körningsflödesvyn. Körningsflödesvyn öppnas.
  2. För att undersöka en särskild metod klickar du på metoden för att välja den. Alla dess anropade metoder markeras då i gult. Den vertikala längden på det framhävda området visar den ungefärliga bastiden för metoden. Det exakta värdet för bastiden visas på statusraden.

    Körningsflödesvy med två metoder

    När du flyttar markören över något objekt i vyn visas detaljerad information i statusfältet längst ner i fönstret.

  3. Använd verktyget Zooma in    En knapp med stiliserad ikon för att aktivera markören. Peka och klicka på ett område för att förstora det. 

Obs! För att uppdatera vyerna medan tillämpningen övervakas klickar du på knappen Uppdatera vyer  En knapp med stiliserad ikon .

Identifiera aktiva trådar

I körningsflödesvyn innehåller varje tråd aktivitetsperioder som identifieras av en stor mängd metodanrop. I symbolisk representation är den första anropade metoden en rand. Metoder som senare anropas av metoden visas som andra ränder till höger om den första. Sekvensen med metodanrop har ett förlopp från vänster till höger. De aktiva delarna av tråden identifieras genom det här vänster-till-höger-förloppet.

När du väljer hela avsnittet där sekvensen med metodanrop ingår visas på statusraden bastiden som använts till att köra den sekvensen. För att se för vilken bastid tråden är aktiv räknar du ut skillnaden mellan följande tider:

  1. Peka på den översta horisontella linjen i det valda gula området för att visa motsvarande bastid på statusraden.
  2. Peka på samma sätt på den nedersta kanten i det valda gula området (vilket täcker körningsperioden när metodsekvensen är aktiv) och visa bastiden vid den punkten.

Tips

Identifiera ofta anropade metoder

Så här identifierar du ofta anropade metoder:

  1. Använd zoomverktyget  En knapp med stiliserad ikon för att förstora en sekvens av metodanrop.
  2. Leta upp ränder med samma färg inom det valda området. Ränderna identifierar metoder från samma klassförekomst som har anropats flera gånger.
  3. Kontrollera längden på ränderna med olika färg (varje färg representerar en metod). Ju längre en rand är desto längre har den metodens körningstid varit.

Bedöma skräpinsamlingsfunktionen

Det är vanligen omöjligt att avgöra om skräpinsamlingsfunktionen har varit aktiv för ett objekt genom att inspektera ränder i en användartråd i den här vyn.

Utför de här stegen:

  1. Skräpinsamlingstråden är i standardinställningen dold. Aktivera den genom att välja Trådar > GC på menyn Kontext för vyn.
  2. Kontrollera tråden längst till vänster i den här vyn. Kolumnen är reserverad för skräpinsamlingstråden och kallas skräpinsamlingskolumnen.
  3. Kontrollera att det finns en tunn rektangel i skräpinsamlingskolumnen. Rektangeln är förmodligen placerad långt under de flesta av objektets metodanrop. Rektangeln visas i skräpinsamlingstrådens kolumn när skräpinsamlingsfunktionen har varit aktiv för det objektet.

Identifiera faser i körningen av ett program

Identifiera initieringsfasen

  1. Använd verktyget Zooma in  En knapp med stiliserad ikon för att förstora sekvensen av metodanrop överst på huvudtråden.
  2. Observera metoderna som är märkta med -init-.
  3. Klicka för att välja en sådan metod. Statusfältet uppdateras för att ange att metoden hjälper till i initieringen (tilldelar värden för variabler som används i tillämpningen).

Analysmetoder med hjälp av metodanropsvyn

  1. Från profileringsövervakaren väljer du antingen en övervakare eller en agent. Högerklicka och välj sedan Öppna med > Körningsflöde. Körningsflödesvyn visas.
  2. Välj metoden som du vill studera, högerklicka och välj sedan Visa metodanrop.
  3. Använd verktyget Zooma in  En knapp med stiliserad ikon för att förstora en del av visningen. Ränderna är färgkodade efter klass och anslutna med horisontella linjer som representerar metodanrop.
  4. Välj en metod genom att klicka på dess namn. 
  5. Klicka på knappen Uppdatera vyer  En knapp med stiliserad ikon för att säkerställa att du visar aktuell information.
  6. Observera raden:
    Statusrad som visar metodnamn och -nummer

    Den här raden visar namnet på metoden med tillägget n/m, där n är det anrop som för tillfället visas av den totala mängden anrop m.
  7. Klicka på Föregående  En knapp med stiliserad ikon och Nästa  En knapp med stiliserad ikon för att bläddra bland den valda metodens alla anrop (eller varje meddelande till det valda objektet). Verktygsfältet ändras och visar vilket anrop du granskar.

Söka efter anropare för en metod

För att söka efter anropare för en metod utför du de här stegen som leder vidare till metodanropsvyn:

  1. För att visa anroparen för en metod klickar du på knappen Visa anropare  En knapp med stiliserad ikon. Metoden visas med anroparen till vänster.
  2. Om du vill ha mer information om metodens anropare för varje nytt anrop som du visar, placerar du markören i vyn ovanför randen som representerar anroparen. Anropsinformationen visas på statusraden.
  3. För att se metoden som en vald metod anropar klickar du på knappen Visa anropad metod  En knapp med stiliserad ikon