Ismertető: Profilkészítési adatok elemzése
Témák
A Java folyamat profilkészítéséből összegyűjtött adatok elemzése a
Profilkészítés és naplózás perspektíva Profilkészítés és naplózás nézeteinek
használatával az alábbi módokon tehető meg:
- A legtöbb időt igénylő objektumok és metódusok azonosítása
- Memóriaintenzív osztályok azonosítása
- Program konkurencia felmérése
- Memóriaszivárgások megkeresése
- Az összes metódus végrehajtás átnézése az idő függvényében
- Szélesebb betekintés megszerzése a végrehajtási viselkedésbe az idő
függvényében
- Aktív szálak azonosítása
- Szálak aktivitási időpontjának azonosítása
- Gyakran hívott metódusok azonosítása
- Szemétgyűjtés felmérése
- A program végrehajtás különböző fázisainak azonosítása
- A különböző metódushívások megismerése
- Egy metódus hívójának megismerése
Szükséges idő
1 óra
Kezdeti lépések
Ezen ismertető elkezdése előtt tegye a következőket:
- Telepítse az Eclipse környezetet a TPTP-vel együtt.
- A profilkészítési példafájl álljon készen (hcframe.jar)
importálásra. A fájlnak az alábbi könyvtárban kell lennie:
TPTP_telepítési_könyvtár\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0
Leírás
Ezen ismertetőben a PerformanceExample.class minta elemzésére különböző
Profilkészítés és naplózás nézetek használatáról lesz szó. A minta egy két
gombot tartalmazó keretet nyit meg.
Az alábbi feladatok kerülnek elvégzésre:
- A Profilkészítés és naplózás perspektíva
megnyitása a munkaterületen
- A PerformanceExample osztály
profilkészítése
- A profilkészítési információk elemzése
A nézetek alkalmazás megfigyelése közbeni frissítéséhez kattintson a
Nézetek frissítése gombra
.
Az Ablak menüben kattintson a Perspektíva megnyitása >
Egyéb > Profilkészítés és naplózás lehetőségre.
A PerformanceExample osztály profilkészítéséhez tegye a következőket:
- Kattintson a Profil legördülő menüre
és válassza ki a Profil lehetőséget. A Profilkészítés indítása párbeszédablak megjelenik.
- Kattintson duplán a Külső Java alkalmazás elemre új konfiguráció
létrehozásához.
- Váltson át a Fő lapra.
- Írja be az
org.eclipse.hyades.test.collection.framework.PerformanceExample
szöveget az Osztály neve mezőbe.
- Kattintson a Jar hozzáadása elemre az ezen osztályt tartalmazó
jar fájl hozzáadásához.
- Válassza ki a TPTP_telepítési_könyvtár\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar fájl
- Kattintson a Megnyitás gombra. A jar fájl hozzáadásra kerül.
- Kattintson a Megfigyelés lapra. A profilkészítési
feltételek adhatók meg ezen a lapon.
- A megfigyelés lapon bontsa ki a Java profilozás címkéjű csomópontot, majd válassza ki az Alap memóriaelemzés lehetőséget majd jelölje be a mellette levő jelölőnégyzetet. Ezzel a memóriához kapcsolódó információk
hozzáadásra kerülnek az alkalmazásból összegyűjteni kívánt információk
típusához.
- Válassza ki az Időelemzés végrehajtása elemet, majd jelölje be mellette a jelölőnégyzetet. Ezen lehetőség bejelölésével a statisztikai
nézetek az idővel kapcsolatos információk elemzésére használhatók. A
Végrehajtási folyam és a Metódushívás nézetek használatához össze kell gyűjteni
a végrehajtás grafikus részleteit. Mivel ezen példa célja az összes nézet
bemutatása, beleértve a Végrehajtási folyam és a Metódushívás nézetet is, a Végrehajtási időelemzés kiválasztása során kattintson a Beállítások szerkesztése elemre,
a Profilozási beállítások szerkesztése párbeszédablakon válassza ki a Végrehajtási folyam grafikus részleteinek megjelenítése elemet.
A Szűrők által kihagyott határosztályok gyűjtése jelölőnégyzetre is kattintson és a Határosztály mélysége elemhez állítson be 1 értéket. Kattintson a Befejezés gombra.
- A Szűrőbeállítás profilozása az elemezni kívánt információk részhalmazának megadását teszi lehetővé. Az elemezni kívánt elemek határán kívül eső osztályok vagy
csomagok kiszűrésére használható.
Válassza ki a Java profilozás adatgyűjtőt, majd kattintson a Beállítások szerkesztése elemre, a Szűrőbeállítás párbeszédablak megnyitásra kerül. A Kiválasztott szűrőbeállítás tartalma elem alatt kattintson a
Hozzáadás gombra azon osztályok vagy csomagok hozzáadásához,
amelyekhez adatokat kíván összegyűjteni.
A Szűrő hozzáadása párbeszédablak megjelenik.
- Ezen osztály profilkészítéséhez írja be az
org.eclipse.hyades.test.collection.framework.* szöveget az
Osztály mezőbe.
- A Metódusnévhez adja meg a * helyettesítő
karaktert, hogy csak a példához tartozó metódusok kerüljenek megadásra.
- Kattintson az OK gombra. A szűrőfeltétel hozzáadásra kerül a
tartalomlistához.
- Más meglévő osztályok szűrőtartalom listából kizárásához
kattintson a Beemelés elemre az osztály Szabály oszlopa alatt, és
módosítsa Kizárás értékre.
- Kattintson a Tovább gombra a Korlátok oldalhoz. Ez az oldal az összegyűjtött adatok
mennyiségét felügyeli az eltett idő vagy a metódushívások száma alapján.
Fogadja el az alapértelmezést. A bezáráshoz és a váégrehajtott módosítások alkalmazásához kattintson a Befejezés gombra.
- Kattintson a Cél lapra. A ProfileProject és a Default Monitor az
alapértelmezett profilkészítési erőforrások, amelyek ezen profilkészítési
munkamenetből származó adatok tárolására használhatók.
- Kattintson a Profil lehetőségre.
- A szükséges profilkészítési erőforrások létrehozásra kerülnek és az
ügynök és a folyamat megjelenik a Profilkészítés megfigyelő nézetben.
- Az Elosztott elrendezés lehetőség kiválasztásával
engedélyezze a megfigyelők megjelenítését, az alábbi képernyőfotón látható
módon. Ez lehetővé teszi az adatok csoportosítását végző megfigyelő
valamint a munkaterület futtatását végző gép megtekintését.

Végrehajtási viselkedés megtekintése egy időtartam alatt
Az alkalmazás végrehajtása a Végrehajtási folyam nézet és táblázat
segítségével megvizsgálható.
Ezen nézet az egész program végrehajtását
ábrázolja grafikusan és táblázatos formában. A Végrehajtási folyam
nézetben az idő a függőleges tengelyen kerül megjelenítésre. A
Végrehajtásai folyam táblázat a Végrehajtási folyam nézet alatt megnyitásra
kerül, és megjeleníti a szálakat valamint a szálak által meghívott
metódusokat.
- A Profilkészítés-figyelő nézetben válassza ki a kívánt megfigyelőt,
kattintson rá a jobb egérgombbal, majd a Végrehajtási folyam nézet
megnyitásához válassza ki a Megnyitás... > Végrehajtási folyam
lehetőséget. A
Végrehajtási folyam nézet megjelenik.
- Egy adott metódus megvizsgálásához kattintson a metódusra a kiválasztáshoz. Ekkor az összes meghívott metódusa sárga
színnel kiemelésre kerül.
A kiemelt terület függőleges hossza a metódus alapidejét jelzi. Az alapidő pontos értéke az állapotsoron kerül
megjelenítésre.

A nézetben a kurzor tetszőleges objektumra mozgatása részletes információkat jelenít meg az ablak aljában lévő állapotsoron.
- Használja a Nagyítás eszközt
a kurzor engedélyezéséhez, majd kattintson a
terület kinagyításához.
Megjegyzés: A nézetek alkalmazás megfigyelése közbeni
frissítéséhez kattintson a Nézetek frissítése gombra
.
Aktív szálak azonosítása
A Végrehajtási folyam nézetben minden szál a metódushívások bősége által
mutatott aktivitások időtartamát tartalmazza. Szimbolikus ábrázolásban az első
meghívott metódus egy csík, és az általa később meghívott metódusok tőle jobbra
további csíkokként jelennek meg. A metódushívások sorrendje balról jobbra
halad, a szál aktív részei ezen balról jobbra előrehaladás alapján kerülnek
azonosításra.
A metódushívások sorozatát átfogó teljes szakasz kiválasztása esetén az
ezen sorozat végrehajtása alatt eltelt alapidő az állapotsorban jelenik meg. Az
aktív szál alapidejének megtekintéséhez számolja ki az alábbi idők közti
különbséget:
- Vigye az egérkurzort a kiválasztott sárga színű terület vízszintes
vonalának tetejéhez a megfelelő alapidő állapotsorban megjelenítéséhez.
- Hasonlóan vigye az egérkurzort a kiválasztott sárga színű terület alsó
széléhez (ami a végrehajtás időtartamát tartalmazza a metódussorozat
tevékenysége közben) és tekintse meg az alapidőt ezen pontban.
Tippek
- Ha a grafikon túl zsúfolt és nehéz átlátni, akkor nagyítson
a zsúfolt területre.
- Egy metódus kiválasztásakor az összes meghívott metódusa sárga színnel
kiemelésre kerül.
- A munkaterületen a nézetek esetén használható a fogd-és-vidd technika az
egyidejű elrendezéshez.
- A kurzor helyéhez tartozó alapidő minden esetben megjelenik az
állapotsorban.
- A nézet alaphelyzetbe állításához kattintson a Kezdeti
állapot gombra.
Gyakran hívott metódusok azonosítása
Gyakran hívott metódusok azonosításához tegye a következőket:
- Használja a Nagyítás eszközt
a metódushívások sorozatának kinagyításához.
- Keresse meg a kijelölt területen az azonos színű csíkokat. Ezen csíkok a
többször meghívott, azonos osztálypéldányokhoz tartozó metódusokat jelzik.
- Ellenőrizze a különböző színű csíkok hosszát (mindegyikét, amely
metódust jelöl). Minél hosszabb a csík, annál hosszabb a metódus végrehajtási
ideje.
Szemétgyűjtés felmérése
Rendszerint ezen nézetben egy felhasználói szálban a csíkok
megvizsgálásával nem lehetséges kideríteni, hogy a szemétgyűjtés egy objektum
esetén megtörtént-e.
Tegye a következőket:
- A szemétgyűjtés szál alapértelmezés rejtve van. A nézet
Kontextus menüje alatt lévő Szálak > GC lehetőség
kiválasztásával engedélyezze.
- Ellenőrizze a bal oldali oszlopot ezen nézetben. Ezen oszlop a
szemétgyűjtési szál számára van fenntartva és GC szál oszlop a neve.
- Ellenőrizze, hogy a GC szál oszlopban van-e egy vékony téglalap. A
téglalap valószínűleg az objektumban történt legtöbb metódushívástól jóval
lejjebb található. Ezen téglalap mindig megjelenik a GC szál oszlopban, amikor
szemétgyűjtés történik egy oszlop számára.
Programvégrehajtás fázisainak azonosítása
Inicializálási fázis azonosítása
- Használja a Nagyítás eszközt
a fő szál tetején lévő metódushívások
sorozatának kinagyításához.
- Jegyezze fel az -init- jelöléssel megjelölt metódusokat.
- Kattintson az egyik ilyen metódusra a kiválasztáshoz. Az állapotsorban
megjelenik, hogy ezen metódus az inicializálást (az alkalmazásban használt
változókhoz érték hozzárendelését) segíti elő.
Metódusok elemzése a Metódushívás nézet használatával
- A Profilkészítés megfigyelőben válasszon egy megfigyelőt vagy egy
ügynököt.
Kattintson a jobb egérgombbal, majd válassza a Megnyitás... >
Végrehajtási folyammal menüpontot. A Végrehajtási folyam nézet megjelenik.
- Válassza ki a megismerni kívánt metódust, kattintson a jobb egérgombbal,
majd válassza a Metódushívások megjelenítése elemet.
- Használja a Nagyítás eszközt
a megjelenítés egy részének kinagyításásához.
A csíkok színe az osztályoktól függ és a csíkok a metódushívásokat ábrázoló
vízszintes vonalakkal kapcsolódnak össze.
- Válasszon ki egy metódust annak nevére kattintással.
- Kattintson a Nézet frissítése gombra
az éppen aktuális információk megtekintéséhez.
- Jegyezze meg az alábbi sort:

Ezen sor a metódus nevét jeleníti meg, ezt követően pedig egy n/m
értéket, ahol n a pillanatnyilag megjelenített hívás az összes
(m) hívásból.
- Kattintson az Előző
és Következő
gombra a kiválasztott metódus
összes hívása (vagy a kijelölt objektum összes üzenete) közti tallózáshoz. Az eszköztáron lévő törtszám az aktuálisan megjelenített hívást jelzi.
Metódus hívójának megkeresése
A metódus hívójának megtalálásához tegye a következőket a Metódushívás
nézetben:
- A metódus hívójának megjelenítéséhez kattintson a Hívó
megjelenítése gombra
.
A metódus a hívójától balra jelenik meg.
- Egy metódus minden egyes új, megjelenített hívása esetén a hívó további
részleteinek megtekintéséhez húzza a kurzort a nézetben a hívót ábrázoló csík
fölé. Az állapotsorban megjelennek a hívó információi.
- Egy kiválasztott metódus által meghívott metódus megtekintéséhez
kattintson a Hívott metódus megjelenítése gombra
.
(C) Copyright IBM Corporation 2000, 2006.