Maybaygiare.org

Blog Network

vizsgálja meg a CPU aktivitását a CPU Profiler

Az alkalmazás CPU-használatának optimalizálása számos előnnyel jár, mint például a gyorsabb és simább felhasználói élmény biztosítása és az eszköz akkumulátorának élettartamának megőrzése.

a CPU Profiler segítségével valós időben ellenőrizheti az alkalmazás CPU-használatát és szálaktivitását, miközben interakcióba lép az alkalmazással, vagy ellenőrizheti a rögzített módszer nyomait, a funkció nyomait és a rendszer nyomait.

a CPU-profilozó által rögzített és megjelenített információk fajtáit az határozza meg, hogy melyik rögzítési konfigurációt választja:

  • System Trace: finomszemcsés részleteket rögzít, amelyek lehetővé teszik, hogy ellenőrizze, hogyan működik az alkalmazás a rendszer erőforrásaival.
  • metódus és függvény nyomok: az alkalmazásfolyamat minden egyes szálához megtudhatja, hogy mely módszerek (Java) vagy függvények (C / C++) kerülnek végrehajtásra egy adott időszak alatt, és az egyes módszerek vagy funkciók CPU-erőforrásait fogyasztják a végrehajtás során. Ön is használja módszer és funkció nyomait azonosítani hívókés callees. A hívó olyan módszer vagy függvény, amely egy másik metodor függvényt hív meg, a hívó fél pedig egy másik metódus vagy függvény. Ezeket az információkat felhasználhatja annak meghatározására, hogy mely módszerek vagy funkciókfelelősök az adott erőforrás-nehéz feladatok túl gyakori meghívásáért ésoptimalizálja az alkalmazás kódját a felesleges munka elkerülése érdekében.

    a módszer nyomainak rögzítésekor választhat mintavétel vagy instrumentedrecording. A funkció nyomainak rögzítésekor csak mintavételezett felvételt használhat.

a nyomkövetési lehetőségek használatának és kiválasztásának részleteiről lásd: Felvételi konfiguráció kiválasztása.

CPU Profiler overview

a CPU Profiler megnyitásához kövesse az alábbi lépéseket:

  1. válassza ki a View>Eszközablakok>Profiler vagy kattintson a Profile elemre az eszköztáron.

    Ha a Select Deployment Target párbeszédablak kéri, válassza ki azt az eszközt, amelyikre telepíteni kívánja az alkalmazást profilalkotás céljából. Ha csatlakoztatott egy eszközt Usbde nem látja a listában, győződjön meg róla, hogy vanenabled USB hibakeresés.

  2. kattintson a CPU idővonal bármely pontjára a CPU Profiler megnyitásához.

amikor megnyitja a CPU profilt, azonnal elkezdi megjeleníteni az alkalmazás CPUusage és thread tevékenységét. Látnia kell valami hasonlót az 1.ábrához.

1.ábra. Idővonalak a CPU Profiler.

amint azt az 1. ábra mutatja, a CPU profilozó alapértelmezett nézete a következő idővonalakat tartalmazza:

  1. Esemény idővonala: Megjeleníti az alkalmazás tevékenységeit, amikor azok életciklusuk különböző állapotain átmennek, és jelzi a felhasználó interakcióit az eszközzel, beleértve a képernyőforgatási eseményeket is. Az esemény idővonalának Android 7.1 (API szint 25) vagy annál alacsonyabb verziójú eszközökön történő engedélyezésével kapcsolatos információkért lásd: speciális profilalkotás engedélyezése.
  2. CPU timeline: az alkalmazás valós idejű CPU-használatát mutatja—az összes rendelkezésre álló CPU-idő százalékában -, valamint az alkalmazás által használt szálak teljes számát. Az idővonal más folyamatok (például rendszerfolyamatok vagy más alkalmazások) CPU-használatát is mutatja, így összehasonlíthatja az alkalmazás használatával. Ellenőrizheti a történelmi CPU-használati adatokat az egér mozgatásával az idővonal vízszintes tengelye mentén.
  3. Thread activity timeline: felsorolja az alkalmazás folyamatához tartozó minden szálat, és az alább felsorolt színekkel jelzi tevékenységüket egy idővonal mentén. A nyomkövetés rögzítése után kiválaszthat egy szálat ebből az idővonalból, hogy ellenőrizze az adatait a nyomkövetés ablaktáblában.
    • zöld: a szál aktív vagy készen áll a CPU használatára. Vagyis futó vagy futtatható állapotban van.
    • sárga: a szál aktív, de egy I/O műveletre, például lemezre vagy hálózati I/O-ra vár, mielőtt befejezheti munkáját.
    • szürke: a szál alszik, és nem fogyaszt CPU időt. Ez néha akkor fordul elő, amikor a szál hozzáférést igényel egy még nem elérhető erőforráshoz. Vagy a szál önkéntes alvásba kerül, vagy a kernel elaltatja a szálat, amíg a szükséges erőforrás elérhetővé nem válik.

    a CPU Profiler az Android Studio és az Android platform által az alkalmazás folyamatához hozzáadott szálak CPU használatát is jelenti—például JDWPProfile SaverStudio:VMStatsStudio:Perfa div>, és Studio:Heartbeat (bár a száltevékenység idővonalában megjelenített pontos nevek eltérőek lehetnek). Az Android Studio jelenti ezeket az adatokat, így azonosíthatja, hogy a szálaktivitást és a CPU-használatot valójában az alkalmazás kódja okozza.

nyomok rögzítése

nyomok rögzítésének megkezdéséhez válasszon ki egy felvételi konfigurációt a CPU Profiler felett vagy alatt található legördülő menükből, majd kattintson a Felvétel gombra.

2.ábra. A CPU Profiler megjeleníti a felvétel állapotát,időtartamát és típusát.

interakció az alkalmazással, majd kattintson a Stop gombra, ha végzett. A Profiler automatikusan megjeleníti a nyomkövetési információkat a nyomkövetési ablaktáblában, amint azt a 3. ábra mutatja:

3.ábra. A CPU Profiler a felvétel utánmódszeres nyomkövetés.

  1. kiválasztott tartomány: meghatározza a rögzített időnek a nyomkövetési ablaktáblában történő ellenőrzéséhez szükséges részét. Amikor először rögzít egy nyomkövetést, a CPU Profiler automatikusan kiválasztja a felvétel teljes hosszát a CPU idővonalában. Ha a rögzített időtartománynak csak egy részére szeretné ellenőrizni a nyomkövetési adatokat, húzza a kijelölt régió széleit.
  2. interakció szakasz: a felhasználói interakció és az alkalmazás életciklusának eseményeit jeleníti meg egy idővonal mentén.
  3. szálak szakasz: a szálállapot-tevékenység (például futás, alvás stb.) megjelenítése.) és Hívásdiagram (vagy nyomkövetési eseménydiagram a Rendszerkövetésben) minden szálhoz egy idővonal mentén.
    • az egér és a billentyűparancsok segítségével navigálhat az idővonalon.
    • kattintson duplán a szál nevére, vagy nyomja le az Enter billentyűt, amíg egy szál ki van jelölve a szál kibontásához vagy összecsukásához.
    • válasszon ki egy szálat, hogy további információkat jelenítsen meg az elemzés ablaktáblában. Tartsa lenyomva a Shift vagy a Ctrl billentyűt (parancs Mac rendszeren) több szál kiválasztásához.
    • válasszon ki egy metódushívást (vagy nyomkövetési eseményt a Rendszerkövetésben), hogy további információkat jelenítsen meg az elemzés ablaktáblában.
  4. elemző panel: Megjeleníti a kiválasztott időtartam, illetve szál-vagy metódushívás nyomkövetési adatait. Ebben az ablaktáblában kiválaszthatja, hogyan tekintheti meg az egyes veremkövetéseket (az elemzés lapok segítségével), és hogyan mérheti a végrehajtási időt (az időhivatkozás legördülő menü segítségével).
  5. Analysis ablaktábla lapok: válassza ki, hogyan jelenítse meg a nyomkövetési adatokat. Az egyes opciókkal kapcsolatos részletekért lásd: nyomok ellenőrzése.
  6. Időreferencia menü: Válassza ki az alábbiak egyikét annak meghatározásához, hogy az egyes hívások időzítési adatait hogyan mérik (csak a minta / nyomkövetési Java módszerek támogatják):
    • Falióra idő: Az időzítési információk a tényleges eltelt időt jelentik.
    • Szálidő: az időzítési információ a tényleges eltelt időt jelenti, levonva annak az időnek bármely részét, amikor a szál nem fogyaszt CPU erőforrásokat. Bármely adott hívás esetén a menetideje mindig kisebb vagy egyenlő a falióra idejével. A szálidő használatával jobban megértheti, hogy egy szál tényleges CPU-használatából mennyit fogyaszt egy adott módszer vagy funkció.
  7. szűrő: az adatok nyomon követése funkció, módszer, osztály vagy Csomagnév szerint. Ha például egy adott híváshoz kapcsolódó nyomkövetési adatokat szeretne gyorsan azonosítani, írja be a nevet a keresőmezőbe. A Lángdiagram lapon a keresési lekérdezésnek megfelelő hívást, csomagot vagy osztályt tartalmazó híváscsomagok kerülnek kiemelésre. A fentről lefelé és alulról felfelé lapokon ezek a híváshalmok elsőbbséget élveznek a többi nyomkövetési eredménnyel szemben. A következő beállításokat a keresőmező melletti megfelelő négyzet bejelölésével is engedélyezheti:
    • Regex: ha reguláris kifejezéseket szeretne felvenni a keresésbe, használja ezt a lehetőséget.
    • egyezési eset: ha a keresés nagybetűérzékeny, használja ezt a lehetőséget.

tipp: a szálak idővonalának ellenőrzésekor a következő parancsikonok érhetők el:

  • Nagyítás: nyomja meg a W gombot, vagy görgesse az egérgombot, miközben lenyomva tartja a Ctrl billentyűt (parancs Mac rendszeren).
  • kicsinyítés: nyomja meg az S gombot, vagy görgesse hátra az egérgörgőt, miközben lenyomva tartja a Ctrl billentyűt (parancs Mac rendszeren).
  • Pan left: nyomja meg az a gombot, vagy húzza az egeret jobbra, miközben a szóközt tartja.
  • Pan right: nyomja meg a D gombot, vagy húzza az egeret balra, miközben a szóközt tartja.
  • szál kibontása vagy összecsukása: kattintson duplán a szál nevére, vagy nyomja le az Enter billentyűt, amíg egy szál ki van jelölve.

felvételi konfiguráció kiválasztása

a nyomkövetési információk rögzítésének megkezdése előtt válassza ki a rögzíteni kívánt profilinformációk megfelelő recordingconfigurációját:

  • Minta Java módszerek: az alkalmazás Java-alapú kódfuttatása során gyakori időközönként rögzíti az alkalmazás híváskonfigurációját. A profiler összehasonlítja a rögzített adatok halmazát, hogy az alkalmazás Java-alapú kódfuttatásával kapcsolatos időzítési és erőforrás-felhasználási információkat származtassa.

    a mintavételen alapuló nyomkövetés velejárója, hogy ha az alkalmazás belép egy módszerbe a hívásköteg rögzítése után, és kilép a módszerből a következő rögzítés előtt, akkor a módszerhívást a profilozó nem naplózza. Ha érdekli a nyomkövetési módszerek ilyen rövid életciklusokkal, használjon műszeres nyomkövetést.

  • Trace Java Methods: eszközök az alkalmazás futásidejű rögzíteni egy időbélyeg elején és végén minden metódus hívás. Az időbélyegeket összegyűjtik és összehasonlítják a módszerkövetési adatok generálásával, beleértve az időzítési információkat és a CPU-használatot.

    vegye figyelembe, hogy az egyes módszerek műszerezésével kapcsolatos költségek befolyásolják a futásidejű teljesítményt és befolyásolhatják a profilozási adatokat; ez még inkább észrevehető a viszonylag rövid életciklusú módszerek esetében. Továbbá, ha az alkalmazás rövid idő alatt nagyszámú módszert hajt végre, a profilozó gyorsan meghaladhatja a fájlméret-korlátot, és előfordulhat, hogy nem képes további nyomkövetési adatokat rögzíteni.

  • Minta C / C++ funkciók: rögzíti az alkalmazás natív szálainak mintavételezett nyomait. A konfiguráció használatához telepítenie kell az alkalmazást egy Android 8.0 (API szint 26) vagy újabb rendszert futtató eszközre.

    belsőleg ez a konfiguráció a simpleperf segítségével követi nyomon az alkalmazás natív kódját. Ha további beállításokat szeretne megadni a simpleperf számára, például adott eszköz CPU-k mintavételezését vagy a mintavételi időtartam nagy pontosságú megadását, használhatja a simpleperf parancsot a parancssorból.

  • Trace rendszerhívások: finomszemcsés részleteket rögzít, amelyek lehetővé teszik annak ellenőrzését, hogy az alkalmazás hogyan működik együtt a rendszer erőforrásaival. Ellenőrizheti a szálállapotok pontos időzítését és időtartamát, vizualizálhatja, hogy hol vannak a CPU szűk keresztmetszetei az összes magban, és hozzáadhat egyedi nyomkövetési eseményeket az elemzéshez. Az ilyen információk döntő fontosságúak lehetnek a teljesítményproblémák elhárításakor. A konfiguráció használatához telepítenie kell az alkalmazást egy Android 7.0 (API szint 24) vagy újabb rendszert futtató eszközre.

    a nyomkövetési konfiguráció használata közben vizuálisan megjelölheti a fontos kódrutinokat a profiler idővonalában a kód műszerezésével. A C/C++ kód eszközéhez használja a trace.háltal biztosított natív nyomkövetési API-t. A Java kód műszerezéséhez használja a Trace osztályt. További információ: eszköz az alkalmazás kódja.

    Ez a nyomkövetési konfiguráció a systrace – re épül. Használhatja asystrace parancssori segédprogramot a CPU Profilozóban megadottakon kívüli opciók megadásához. A systrace által biztosított további rendszerszintű adatok segíthetnek a natív rendszerfolyamatok ellenőrzésében és a leesett vagy késleltetett keretek hibaelhárításában.

    az Android 9 (API szint 28) vagy újabb rendszert futtató eszközökön a System Tracing nevű rendszeralkalmazás segítségével rögzítheti a rendszer nyomait egy eszközön.

felvételi konfiguráció létrehozása, szerkesztése vagy megtekintése

felvételi konfigurációkat hozhat létre, szerkeszthet és tekinthet meg a CPU RecordingConfigurations párbeszédpanelen, amelyet a CPU Profiler tetején található recording configurations legördülő menüből a konfigurációk szerkesztése menüpont kiválasztásával nyithat meg.

egy meglévő felvételi konfiguráció beállításainak megtekintéséhez jelölje ki azt a CPU felvételi konfigurációk párbeszédablak bal oldali ablaktáblájában.

új felvételi konfiguráció létrehozásához tegye a következőket:

  1. kattintson az Addelemre a párbeszédablak bal felső sarkában. Ez új konfigurációt hoz létre néhány alapbeállítással.
  2. adja meg a konfigurációt.
  3. válasszon ki egy nyomkövetési technológiát.
  4. a mintavételezett felvételi konfigurációkhoz adja meg a mintavételi intervallumot mikroszekundumokban (KB). Ez az érték az alkalmazás hívási veremének egyes mintái közötti időt jelenti. Minél rövidebb a megadott intervallum, annál gyorsabbelérje a rögzített adatok fájlméretének korlátját.
  5. adja meg a fájlméret korlátot megabájtban (MB) a rögzített adatokhozamelyek a csatlakoztatott eszközre vannak írva. Amikor leállítja a felvételt, az AndroidStudio elemzi ezeket az adatokat, és megjeleníti azokat a profiler ablakban. Tehát, ha önnöveli a korlátot és nagy mennyiségű adatot rögzít, az Android Studio sokkal hosszabb ideig tart a fájl elemzéséhez, és nem válaszolhat.

    Megjegyzés: Ha Android 8.0 (API szint 26)vagy újabb rendszert futtató csatlakoztatott eszközt használ, a nyomkövetési adatok fájlméretére nincs korlátozás, és ezt az értéket figyelmen kívül hagyja. Azonban még mindig óvatosnak kell lennie, hogy mennyi adatot gyűjt az eszköz minden felvétel után—az Android stúdiónak nehéz lehetnagy nyomkövetési fájlok feltöltése. Ha például rövid mintavételi intervallummal vagy műszeres nyomkövetéssel rögzít egy sampledtrace-t, miközben az alkalmazás rövid idő alatt számos módszert hív meg, akkor gyorsan nagy nyomkövetési fájlokat generál.

  6. a módosítások elfogadásához és a többi konfiguráció módosításának folytatásához kattintson az Alkalmaz gombra. Az összes alkalmazott módosítás elfogadásához és a párbeszédablak bezárásához kattintson a gombra.

jegyezze fel a CPU aktivitását a hibakeresési API-val

használhatja a Debug API-t, hogy lehetővé tegye az alkalmazás számára, hogy elindítsa és leállítsa a CPU-aktivitás rögzítését a CPU Profilozóban.

a CPU Profiler akkor kezdi meg a felvételt,amikor az alkalmazás felhívja astartMethodTracing(String tracePath), a CPU Profiler pedig leállítja a felvételt, amikor az alkalmazás felhívja astopMethodTracing(). Az API használatával kiváltott CPU-tevékenység rögzítése közben a CPU profiler asdebug API-t mutatja aktív CPU-felvételi konfigurációként.

a CPU aktivitásának a Debug API-val történő rögzítésének vezérléséhez telepítse a saját szoftveralkalmazását egy Android 8.0 (API level 26) vagy magasabb szintű eszközre.

fontos: a Debug API-t külön kell használni a Cpuaktivitás rögzítésének elindításához és leállításához, például a CPU Profiler grafikus felhasználói felületén található gomboktól és a felvételi konfigurációban az appstartup automatikus felvételéhez.

a 8 MB-os pufferméret-korlát miatt astartMethodTracing(String tracePath) módszert aDebug API-ban rövid időközönként vagy olyan forgatókönyvekre tervezték, amelyek nehezen indíthatók el/állíthatók le kézzel. Hosszabb felvételi idő esetén használjaa profiler UI az Android stúdióban.

További információ, seeGenerate nyomkövetési naplók műszerezésével a kb.

jegyezze fel a CPU-aktivitást az alkalmazás indításakor

a CPU-aktivitás automatikus felvételének megkezdéséhez az alkalmazás indításakor tegye a következőket:

  1. válassza a Futtatás > konfigurációk szerkesztése lehetőséget.
  2. a profilozás lapon jelölje be a methodtrace felvételének indítása indításkor jelölőnégyzetet.
  3. válasszon ki egy CPU felvételi konfigurációt a menüből.
  4. kattintson az Alkalmaz gombra.
  5. telepítse az alkalmazást egy Android 8.0 (API szint 26) vagy újabb rendszert futtató eszközre a Run> profil kiválasztásával.

nyomok exportálása

miután rögzítette a CPU-tevékenységet a CPU profiler segítségével, exportálhatja az adatokat asa .trace fájlt, hogy megossza másokkal, vagy később ellenőrizze.

nyomkövetési fájl exportálásához a CPU idővonaláról tegye a következőket:

  1. a CPU idővonalán kattintson a jobb gombbal a rögzített módszerre nyomkövetés vagy rendszer nyomon követéshogy exportálni szeretné.
  2. válassza a nyomkövetés exportálása lehetőséget a menüből.
  3. keresse meg a fájl mentési helyét, adja meg a fájl nevét, majd kattintson a gombra.

nyomkövetési fájl exportálásához a munkamenetek ablaktáblából tegye a következőket:

  1. a munkamenetek ablaktáblában kattintson a jobb gombbal arra a rögzített nyomkövetésre, amelyet exportálni szeretne.
  2. kattintson az export metóduskövetés vagy a rendszerkövetés exportálása gombra a munkamenet bejegyzés jobb oldalán.
  3. keresse meg a fájl mentési helyét, adja meg a fájl nevét, majd kattintson a gombra.

nyomok importálása

importálhat .trace aDebug API vagy CPU Profiler segítségével létrehozott fájlokat.

importálja a nyomkövetési fájlt a Start new profiler session elemre kattintva a theprofiler Sessions ablaktáblájában, majd válassza a Load from file lehetőséget.

az importált nyomkövetést a CPU Profilozóban ugyanúgy ellenőrizheti, mint a közvetlenül a CPU Profilozóban rögzített nyomvonalakat, a következő kivételekkel:

  • a CPU aktivitása nem jelenik meg a CPU idővonalán (kivéve a System Trace-ben).
  • a szálak szakasz idővonala nem mutat olyan szálállapotokat, mint plfutás, várakozás vagy alvás (kivéve a rendszer nyomkövetését).

nyomok ellenőrzése

a CPU Profiler nyomkövetési nézete számos módot kínál az információk megtekintésérea rögzített nyomokból.

metóduskövetések és függvénykövetések esetén a Hívásdiagramot közvetlenül a szálak idővonalán és a Lángdiagramon tekintheti meg, felülről lefelé és alulról felfelé az elemzés ablaktáblán. Rendszerkövetések esetén a nyomkövetési eseményeket közvetlenül a szálak idővonalában, a lángdiagramot pedig az Analysispane felülről lefelé és alulról felfelé lapjain tekintheti meg.

egér-és billentyűparancsok állnak rendelkezésre a Hívásdiagramok vagy nyomkövetési események könnyebb navigálásához.

nyomok ellenőrzése a Hívásdiagram segítségével

a Hívásdiagram grafikus ábrázolást nyújt egy metódus-nyomkövetésről vagy funkciókövetésről, ahol a hívás periódusa és időzítése a vízszintes tengelyen van ábrázolva, hívásai pedig a függőleges tengely mentén jelennek meg. A rendszer API-k hívásai narancssárga színnel jelennek meg, az alkalmazás saját módszereire irányuló hívások zöld színnel jelennek meg, a harmadik féltől származó API-kra (beleértve a Java nyelvű API-kat is) irányuló hívások pedig kék színnel jelennek meg. A 4. ábra egy példa hívásdiagramot mutat be, és szemlélteti az önidő, a gyermekidő és a teljes idő fogalmát egy adott módszerhez vagy funkcióhoz. Ezekről a fogalmakról többet megtudhat a nyomok felülről lefelé és alulról felfelé történő ellenőrzéséről szóló szakaszban.

4.ábra. Egy példa hívásdiagram, amely illusztráljaönmagát, a gyermekeket és a D módszer teljes idejét.

tipp: Egy módszer vagy függvény forráskódjának átugrásához kattintson rá a jobb gombbal, majd válassza az ugrás a forráshoz lehetőséget. Ez az elemzés ablaktábla bármelyik lapján működik.

ellenőrizze a nyomokat a Lángdiagram fül segítségével

a Lángdiagram fül egy fordított hívásdiagramot tartalmaz, amely összesíti az azonos híváshalmokat. Ez azt jelenti, hogy azonos módszerek vagy függvények, amelyek ugyanazt a hívószámot osztják meg, összegyűjtésre kerülnek, és egy hosszabb sávként jelennek meg a lángdiagramban (ahelyett, hogy több rövidebb sávként jelenítenék meg őket, amint azt az acall diagram mutatja). Ez megkönnyíti annak megismerését, hogy mely módszerek vagy funkciók fogyasztják a legtöbb időt. Ez azonban azt is jelenti, hogy a vízszintes tengely nem képviseli az atimeline-t; ehelyett azt jelzi, hogy az egyes módszerek vagy funkciók mennyi időt vesznek igénybe a végrehajtáshoz.

ennek a koncepciónak a szemléltetéséhez vegye figyelembe az 5.ábrán látható hívásdiagramot. Megjegyzendő, hogy a D módszer több hívást kezdeményez B-re (B1, B2, andB3), és néhány ilyen hívás B-re hívást kezdeményez C-re (C1 andC3).

5.ábra. Hívásdiagram több módszerhívással, amelyek megosztják a hívók közös sorrendjét.

mivel a B1, B2 és B3 hívók sorrendje azonos (a), ezek összesítve vannak, amint azt a 6.ábra mutatja. Hasonlóképpen, a C1 és a C3 összesítve van, mivel a hívók sorrendje azonos (a); vegye figyelembe, hogy a C2 nem tartozik bele, mert a hívók sorrendje eltérő (a).

6.ábra. Azonos módszerek összesítése, amelyek megosztjákugyanaz a hívás verem.

az összesített hívások a lángdiagram létrehozására szolgálnak, amint azt a 7.ábra mutatja.Vegye figyelembe, hogy a lángdiagram bármely adott hívása esetén a legtöbb CPU időt fogyasztó hívók jelennek meg először.

7.ábra. A láng diagram ábrázolása a callchart ábrán látható 5.

nyomok ellenőrzése fentről lefelé és alulról felfelé

a fentről lefelé lap megjeleníti azon hívások listáját, amelyekben egy metódus vagy funkciócsomópont kibővítése megjeleníti a hívásokat. A 8. ábra a 4. ábrán a callchart felülről lefelé mutató grafikonját mutatja. A grafikon minden nyílja a hívótól a hívóig mutat.

amint azt a 8. ábra mutatja, az a módszer csomópontjának kibővítése a felülről lefelé lapon megjeleníti a hívásokat, a B és a D módszereket. Hasonló a Flame charttab, a fentről lefelé fa összesíti nyomkövetési információkat azonos módszerek thatshare ugyanazt a hívást verem. Ez azt jelenti, hogy a Flame chart fül grafikusa felülről lefelé mutató lap ábrázolása.

a fentről lefelé lap a következő információkat tartalmazza az egyes hívásokra fordított CPUtime leírásához (az idők a szál teljes idejének százalékában is megjelennek a kiválasztott tartományban):

  • Self: az az idő, amelyet a módszer vagy függvényhívás a saját kódjának végrehajtásával töltött, nem pedig a hívásainak végrehajtásával, amint azt a D módszer 4.ábrája szemlélteti.
  • gyermekek: az az idő, amelyet a módszer vagy függvényhívás a hívásainak végrehajtásával töltött, és nem a saját kódjával, amint azt a 4. ábra szemlélteti D.
  • összesen: a módszer Ön-és Gyermekidőjének összege. Ez azt a teljes időt jelenti, amelyet az alkalmazás egy hívás végrehajtására fordított, amint azt a D módszer 4.ábrája szemlélteti.

8. ábra. Fentről lefelé egy fa.

9.ábra. Alulról felfelé álló fa a C módszerhez a 8. ábrán.

az alulról felfelé lap megjeleníti azon hívások listáját, amelyekben egy függvény kibővítése vagya method csomópontja megjeleníti hívóit. A 8. ábrán látható példa segítségével a 9. ábra alulról felfelé mutató fát biztosít a C módszerhez. A csomópont megnyitása a módszerhez Cin az alulról felfelé mutató fa megjeleníti az egyes egyedi hívókat, a B és a D módszereket. Megjegyzendő, hogy bár B kétszer hívja C-t, B csak egyszer jelenik meg, amikor a csomópontot kibővíti Formethod C az alulról felfelé álló fában.

az alulról felfelé mutató lap hasznos a módszerek vagy funkciók rendezéséhez azok számára, amelyek a legtöbb (vagy legkevesebb) CPU időt fogyasztják. Megvizsgálhatja az egyes csomópontokat annak meghatározásáhozmelyik hívó tölti a legtöbb CPU-időt ezen módszerek vagy funkciók meghívására.A felülről lefelé irányuló fához képest az abottom up fa minden módszerének vagy funkciójának időzítési adatai az egyes fák tetején található módszerre vonatkoznak (felső csomópont).A CPU-idő a szál teljes idejének százalékában is képviselteti magátez a felvétel. Az alábbi táblázat segít megmagyarázni, hogyan kell értelmezni az időzítési információkat a felső csomópont és hívói (alcsomópontok) számára.

saját gyermekek összesen
módszer vagy funkció az alulról felfelé álló fa tetején (felső csomópont) azt a teljes időt jelöli, amelyet a módszer vagy függvény a saját kódjának végrehajtásával töltött, nem pedig a hívásainak. A fentről lefelé mutató fához képest ez az időzítési információ a módszer vagy funkció Összes hívásának összegét jelenti a felvétel időtartama alatt. a azt a teljes időt jelöli, amelyet a módszer vagy függvény a hívásainak végrehajtásával töltött, nem pedig a saját kódját. A fentről lefelé mutató fához képest ez az időzítési információ a módszer vagy a függvény hívásainak összes hívásának összegét jelenti a felvétel időtartama alatt. az önidő és a gyermekidő összege.
hívók (alcsomópontok) A hívó hívásakor a hívó teljes önidejét jelenti. A 9. ábra alulról felfelé mutató fáját használva példaként a B módszer önideje megegyezne a C módszer minden egyes végrehajtására vonatkozó önidők összegével, ha B hívja meg. a hívó fél által meghívott összes gyermekidőt jelenti. A 9. ábra alulról felfelé mutató fáját használva példaként a B módszer gyermekideje megegyezne a C módszer minden egyes végrehajtására vonatkozó gyermekidők összegével, ha B hívja meg. az önidő és a gyermekidő összege.

Megjegyzés: Egy adott felvételnél az Android Studio leállítja az új adatok gyűjtését, amikor a profilozó eléri a fájlméret korlátot (ez azonban nem állítja le a felvételt). Ez általában sokkal gyorsabban történik a performinginstrumented traces során, mert az ilyen típusú nyomkövetés több adatot gyűjt rövid idő alatt, mint egy mintavételezett nyomkövetés. Ha meghosszabbítja az ellenőrzési időt a felvétel azon időszakára, amely a határérték elérése után történt, a nyomkövetési ablaktábla időzítési adatai nem változnak (mivel nem állnak rendelkezésre új adatok). Ezenkívül a nyomkövetés ablaktábla megjeleníti a Nan-t az időzítési információkhoz, ha a felvételnek csak a rendelkezésre álló adatokkal nem rendelkező részét választja.

Rendszernyomok ellenőrzése

rendszerkövetés ellenőrzésekor a szálak idővonalán található nyomkövetési eseményeket vizsgálhatja meg, hogy megtekinthesse az egyes szálakon előforduló események részleteit.Vigye az egérmutatót egy esemény fölé, hogy lássa az esemény nevét és az egyes állapotokban eltöltött időt. Kattintson egy eseményre, ha további információt szeretne látni az elemzés ablaktáblán.

a CPU magok ablaktáblája (a 10. ábrán látható módon) minden magon ütemezett szálaktivitást mutat. Vigye az egérmutatót egy száltevékenység fölé, hogy lássa, melyik szálon fut ez a mag az adott időpontban.

10.ábra. A render szál CPU-aktivitásának és eseményeinek nyomon követése.

a rendszerkövetési információk ellenőrzésével kapcsolatos további információkért lásd a systrace dokumentáció UI teljesítményproblémáinak vizsgálata című szakaszát.

vizsgálja meg a képkocka megjelenítési adatait

ellenőrizheti, hogy az alkalmazás mennyi ideig tart az egyes képkockák megjelenítésére a főszálon, és RenderThread az UI jank és lowframerates okozta szűk keresztmetszetek kivizsgálásához.

a keretmegjelenítési adatok megtekintéséhez rögzítsen egy nyomkövetést az aconfiguration használatával,amely lehetővé teszi a rendszerhívások nyomon követését. A nyomvonal rögzítése után keresse meg az egyes képkockákkal kapcsolatos információkat a képkockák idővonala alatt a Megjelenítés részben, amint az a 11.ábrán látható.

11.ábra. Minden képkocka, amely hosszabb ideig tart, mint 16mpirosan jelenik meg.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.