optimering af din apps CPU-brug har mange fordele, såsom at give en hurtigere og glattere brugeroplevelse og bevare enhedens batterilevetid.
Du kan bruge CPU-Profiler til at inspicere din apps CPU-brug og trådaktiviteti realtid, mens du interagerer med din app, eller du kan inspicere detaljerne i registrerede metodespor, funktionsspor og systemspor.
de specifikke typer oplysninger, som CPU-profilen registrerer og viser, erbestemt af hvilken optagekonfiguration du vælger:
- Systemsporing: fanger finkornede detaljer, der giver dig mulighed for at inspicere hvordandin app interagerer med systemressourcer.
-
metode og funktion spor: for hver tråd i din app proces, kan dufind ud af, hvilke metoder (Java) eller funktioner (C/C++) udføres over en periodeaf tid og CPU ressourcer hver metode eller funktion forbruger under sinudførelse. Du kan også bruge metode-og funktionsspor til at identificere opkaldog opkald. En opkalder er en metode eller funktion, der påberåber sig en anden metodeeller funktion, og en callee er en, der påberåbes af en anden metode ellerfunktion. Du kan bruge disse oplysninger til at bestemme, hvilke metoder eller funktionerer ansvarlige for at påberåbe sig bestemte ressourcetunge opgaver for ofte ogoptimere din apps kode for at undgå unødvendigt arbejde.
når du optager metode spor, kan du vælge samplet eller instrumentedrecording. Når du optager funktionsspor, kan du kun bruge samplet optagelse.
for detaljer om brug og valg af hver af disse sporingsindstillinger, sevælg en optagekonfiguration.
- CPU Profiler oversigt
- Optag spor
- vælg en optagekonfiguration
- Opret, rediger eller vis en optagekonfiguration
- Optag CPU-aktivitet med Debug API
- Optag CPU-aktivitet under appstart
- Eksporter spor
- Importer spor
- Undersøg spor
- Undersøg spor ved hjælp af Opkaldsdiagrammet
- Undersøg spor ved hjælp af fanen Flame Chart
- Undersøg spor ved hjælp af Top ned og bund op
- Undersøg systemspor
- Undersøg rammegengivelsesdata
CPU Profiler oversigt
for at åbne CPU Profiler, følg disse trin:
-
vælg Vis> Værktøjsvinduer> Profiler eller klik på Profil i værktøjslinjen.
Hvis du bliver bedt om det i dialogboksen Vælg Udrulningsmål, skal du vælge den enhed, som du vil installere din app til profilering. Hvis du har tilsluttet en enhed over Usbmen kan ikke se den på listen, skal du sikre dig, at du haraktiveret USB-fejlfinding.
-
klik et vilkårligt sted i CPU-tidslinjen for at åbne CPU-profilen.
når du åbner CPU-profilen, begynder den straks at vise din apps CPUusage og trådaktivitet. Du skal se noget, der ligner figur 1.
Figur 1. Tidslinjer i CPU Profiler.
som angivet i figur 1 inkluderer standardvisningen for CPU-profilen følgende tidslinjer:
- hændelsestidslinje: Viser aktiviteterne i din app, når de skifter gennem forskellige tilstande i deres livscyklus, og angiver brugerinteraktioner med enheden, herunder skærmrotationshændelser. For oplysninger om aktivering af begivenhedstidslinjen på enheder, der kører Android 7.1 (API-niveau 25) og lavere, se Aktiver avanceret profilering.CPU-tidslinje: viser CPU-brug i realtid af din app—som en procentdel af den samlede tilgængelige CPU—tid-og det samlede antal tråde, din app bruger. Tidslinjen viser også CPU-brugen af andre processer (såsom systemprocesser eller andre apps), så du kan sammenligne det med din apps Brug. Du kan inspicere historiske CPU-brugsdata ved at flytte musen langs tidslinjens vandrette akse.
- trådaktivitetstidslinje: viser hver tråd, der hører til din appproces, og angiver deres aktivitet langs en tidslinje ved hjælp af nedenstående farver. Når du har registreret et spor, kan du vælge en tråd fra denne tidslinje for at inspicere dens data i ruden spor.
- grøn: tråden er aktiv eller er klar til at bruge CPU ‘ en. Det vil sige, det er i en løbende eller kørbar tilstand.
- Gul: tråden er aktiv, men den venter på en I/O-operation, f.eks.
- grå: tråden sover og bruger ikke nogen CPU-tid. Dette sker undertiden, når tråden kræver adgang til en ressource, der endnu ikke er tilgængelig. Enten går tråden i frivillig søvn, eller kernen sætter tråden i dvale, indtil den krævede ressource bliver tilgængelig.
CPU—profilen rapporterer også CPU-brug af tråde, som Android Studio og Android-platformen tilføjer til din appproces-såsom
JDWP
Profile Saver
Studio:VMStats
Studio:Perfa
ogStudio:Heartbeat
(selvom de nøjagtige navne, der vises i trådaktivitetstidslinjen, kan variere). Android Studio rapporterer disse data, så du kan identificere, hvornår trådaktivitet og CPU-brug faktisk skyldes din apps kode.
Optag spor
for at starte optagelse af et spor skal du vælge en optagekonfigurationfra en af rullemenuerne over eller under CPU-profilen og klikke på Optag.
figur 2. CPU Profiler viser status, varighed og type optagelse, der foretages.
interagere med din app, og klik derefter på Stop, når du er færdig. Theprofiler viser automatisk sine sporingsoplysninger i sporingsruden, som vist i figur 3:
figur 3. CPU Profiler efter optagelse amethod spor.
- valgt område: bestemmer den del af den registrerede tid, der skal inspiceres i sporingsruden. Når du først optager et spor, vælger CPU-Profiler automatisk hele længden af din optagelse i CPU-tidslinjen. Hvis du kun vil inspicere sporingsdata for en del af det registrerede tidsinterval, skal du trække i kanterne af det fremhævede område.
- interaktion sektion: viser brugerinteraktion og app livscyklus begivenheder langs en tidslinje.
- Trådsektion: viser trådtilstandsaktivitet (såsom løb, søvn osv.) og Opkaldsdiagram (eller spor hændelsesdiagram i Systemsporing) for hver tråd langs en tidslinje.
- brug mus og tastaturgenveje til at navigere på tidslinjen. Dobbeltklik på trådnavnet, eller tryk på Enter, mens en tråd er valgt for at udvide eller skjule en tråd.
- vælg en tråd for at se yderligere oplysninger i Analyseruden. Hold Shift eller Ctrl (kommando på Mac) for at vælge flere tråde.
- Vælg et metodeopkald (eller sporingshændelse i Systemsporing) for at se yderligere oplysninger i Analyseruden.
- analyserude: Viser sporingsdata for det tidsinterval og det tråd-eller metodeopkald, du har valgt. I denne rude kan du vælge, hvordan du får vist hver staksporing (ved hjælp af fanerne analyse), og hvordan du måler eksekveringstid (ved hjælp af rullemenuen tidsreference). faneblade for Analyseruden: Vælg, hvordan sporingsdetaljer skal vises. For detaljer om hver mulighed, se Undersøg spor.
- Tidsreferencemenu: Vælg et af følgende for at bestemme, hvordan timingoplysninger for hvert opkald måles (understøttes kun i Sample / Trace Java-metoder):
- vægurtid: Timing information repræsenterer faktisk forløbet tid.
- Trådtid: timingoplysninger repræsenterer faktisk forløbet tid minus en del af den tid, når tråden ikke bruger CPU-ressourcer. For et givet opkald er dets trådtid altid mindre end eller lig med dets vægurtid. Brug af trådtid giver dig en bedre forståelse af, hvor meget af en tråds faktiske CPU-brug forbruges af en given metode eller funktion.
- Filter: filtre sporer data efter funktion, metode, klasse eller Pakkenavn. Hvis du f.eks. hurtigt vil identificere sporingsdata, der er relateret til et bestemt opkald, skal du skrive navnet i søgefeltet. På fanen Flammediagram fremhæves opkaldsstakke, der indeholder et opkald, en pakke eller en klasse, der matcher søgeforespørgslen. I fanerne øverst ned og nederst op prioriteres disse opkaldsstakke frem for andre sporingsresultater. Du kan også aktivere følgende indstillinger ved at markere det relevante felt ud for søgefeltet:
- Regeks: hvis du vil medtage regulære udtryk i din søgning, skal du bruge denne indstilling.
- Match case: hvis din søgning er store og små bogstaver, skal du bruge denne indstilling.
vælg en optagekonfiguration
før du begynder at optage sporingsoplysninger, skal du vælge den relevante optagelseskonfiguration for de profileringsoplysninger, du vil fange:
- eksempel på Java-metoder: fanger din apps opkaldsstak med hyppige intervaller under din apps Java-baserede kodekørsel. Profilen sammenligner sæt af indfangede data for at udlede oplysninger om timing og ressourceforbrug om din apps Java-baserede kodekørsel.
et iboende problem med sampletbaseret sporing er, at hvis din app indtaster en metode efter en optagelse af opkaldsstakken og afslutter metoden før den næste optagelse, logges dette metodeopkald ikke af profilen. Hvis du er interesseret i sporingsmetoder med så korte livscyklusser, skal du bruge instrumenteret sporing.
- spor Java-metoder: instrumenter din app ved kørsel for at optage et tidsstempel i begyndelsen og slutningen af hvert metodeopkald. Tidsstempler indsamles og sammenlignes for at generere metodesporingsdata, herunder timingoplysninger og CPU-brug.
Bemærk, at de omkostninger, der er forbundet med instrumentering af hver metode, påvirker runtime-ydeevne og kan påvirke profileringsdata; dette er endnu mere synligt for metoder med relativt korte livscyklusser. Hvis din app udfører et stort antal metoder på kort tid, kan profilen muligvis hurtigt overskride sin filstørrelsesgrænse og muligvis ikke registrere yderligere sporingsdata.
- Sample C / C++ funktioner: indfanger samplede spor af din app indfødte tråde. For at bruge denne konfiguration skal du installere din app på en enhed, der kører Android 8.0 (API-niveau 26) eller højere.
internt bruger denne konfiguration
simpleperf
til at spore din apps oprindelige kode. Hvis du vil angive yderligere indstillinger forsimpleperf
, såsom prøveudtagning af specifikke enheds-CPU ‘ er eller angivelse af prøveudtagningsvarigheder med høj nøjagtighed, kan du brugesimpleperf
fra kommandolinjen. - spor systemopkald: fanger finkornede detaljer, der giver dig mulighed for at inspicere, hvordan din app interagerer med systemressourcer. Du kan inspicere nøjagtige tidspunkter og varigheder af dine trådtilstande, visualisere, hvor dine CPU-flaskehalse er på tværs af alle kerner, og Tilføj brugerdefinerede sporingshændelser, der skal analyseres. Sådanne oplysninger kan være afgørende, når du løser problemer med ydeevnen. For at bruge denne konfiguration skal du installere din app på en enhed, der kører Android 7.0 (API-niveau 24) eller højere.
mens du bruger denne sporingskonfiguration, kan du visuelt markere vigtige koderutiner i profilens tidslinje ved at instruere din kode. For at instrumentere C/C++ – kode skal du bruge den native tracing API, der leveres af
trace.h
. For at instrumentere Java-kode skal du brugeTrace
klasse. For mere information, se Instrument din app kode.denne sporingskonfiguration er bygget på
systrace
. Du kan brugesystrace
kommandolinjeværktøjet til at angive indstillinger ud over dem, der findes i CPU-profilen. De ekstra data på systemniveau leveret afsystrace
kan hjælpe dig med at inspicere native systemprocesser og fejlfinding af tabte eller forsinkede rammer.på enheder, der kører Android 9 (API-niveau 28) eller højere, kan du bruge en systemapp kaldet Systemsporing til at registrere systemspor på en enhed.
Opret, rediger eller vis en optagekonfiguration
du opretter, redigerer og får vist optagekonfigurationer i dialogboksen CPU RecordingConfigurations, som du åbner ved at vælge Rediger konfigurationerfra rullemenuen optagekonfigurationer øverst i CPU-profilen.
for at se indstillingerne for en eksisterende optagekonfiguration skal du vælge den ivenstre rude i dialogboksen CPU-Optagekonfigurationer.
for at oprette en ny optagekonfiguration skal du gøre følgende:
- Klik på Tilføj øverst til venstre i dialogen. Dette skaber en ny konfiguration med noglefault-indstillinger.
- Navngiv din konfiguration.
- vælg en sporingsteknologi.
- for samplede optagekonfigurationer skal du angive Prøveudtagningsintervallet imikrosekunder (Kross). Denne værdi repræsenterer tiden mellem hver prøve af din apps opkaldsstak. Jo kortere interval du angiver, jo hurtigere dunå filstørrelsesgrænsen for de registrerede data.
- Angiv filstørrelsesgrænsen i megabyte (MB) for de optagede datader er skrevet til den tilsluttede enhed. Når du holder op med at optage, analyserer AndroidStudio disse data og viser dem i profiler-vinduet. Så hvis duøge grænsen og optage en stor mængde data, Android Studio tagermeget længere tid at analysere filen og kan blive reagerer.
Bemærk: Hvis du bruger en tilsluttet enhed, der kører Android 8.0 (API-niveau 26)eller højere, er der ingen grænse for filstørrelsen på sporingsdataene, og denne værdi ignoreres. Du skal dog stadig være forsigtig med, hvor meget dataenheden indsamler efter hver optagelse—Android Studio kan have sværtparsing store sporfiler. For eksempel, hvis du optager enten en sampledtrace med et kort samplingsinterval eller et instrumenteret spor, mens din app kalder mange metoder på kort tid, genererer du hurtigt store sporingsfiler.
- hvis du vil acceptere ændringerne og fortsætte med at foretage ændringer i andre konfigurationer,skal du klikke på Anvend. For at acceptere alle anvendte ændringer og lukke dialogen, clickOK.
Optag CPU-aktivitet med Debug API
Du kan brugeDebug
API til at give din app mulighed for at starte og stoppe optagelsen af CPU-aktivitet i CPU-Profiler.CPU-profilen begynder at optage,når din app ringerstartMethodTracing(String tracePath)
, og CPU-profilen stopper optagelsen, når din app ringerstopMethodTracing()
. Mens optagelse af CPU-aktivitet, der udløses ved hjælp af denne API, viser CPU-profilernedebug API som den aktive CPU-optagekonfiguration.
for at kontrollere optagelsen af CPU-aktivitet medDebug
API skal du implementere dininstrumenterede app til en enhed, der kører Android 8.0 (API-niveau 26) eller højere.
vigtigt:Debug
API er beregnet til brugseparat fra andre midler til at starte og stoppe optagelsen af Cpuaktivitet, såsom knapperne i CPU Profiler grafiske brugergrænseflade ogindstillingen i optagekonfigurationen til automatisk optagelse på appstartup.
på grund af bufferstørrelsesgrænsen på 8 MB er startMethodTracing(String tracePath)
– metoden i Debug
API designet til korte intervaller eller scenarier, der ersvært at starte/stoppe optagelse manuelt. I længere perioder med optagelse skal du brugeprofil UI i Android Studio.
For mere information, seeGenerate spor logs ved instrumentering din app.
Optag CPU-aktivitet under appstart
for at begynde at optage CPU-aktivitet automatisk under appstart skal du gørefølgende:
- vælg Kør> Rediger konfigurationer.
- marker afkrydsningsfeltet ud for Start optagelse af en metodetrace ved opstart under fanen profilering.
- vælg en CPU-optagekonfiguration i menuen.
- Klik på Anvend.
- Implementer din app til en enhed, der kører Android 8.0 (API-niveau 26) eller højere ved at vælge Kør > profil.
Eksporter spor
når du har optaget CPU-aktivitet med CPU-profilen, kan du eksportere dataene asa.trace
fil til at dele med andre eller inspicere senere.
Hvis du vil eksportere en sporingsfil fra CPU-tidslinjen, skal du gøre følgende:
- i CPU-tidslinjen skal du højreklikke på den optagede metode spor eller systemsporat du vil eksportere.
- vælg Eksporter spor i menuen.
- gå til det sted, hvor du vil gemme filen, Angiv filnavnet og clickOK.
Hvis du vil eksportere en sporingsfil fra ruden sessioner, skal du gøre følgende:
- Højreklik på det spor, du vil eksportere, i ruden sessioner.
- Klik på knappen Eksporter metode spor eller Eksporter system spor på højre side af sessionsposten.
- gå til det sted, hvor du vil gemme filen, Angiv filnavnet og clickOK.
Importer spor
Du kan importere.trace
filer oprettet medDebug
API eller CPU Profiler.
Importer din sporingsfil ved at klikke på Start ny profiler session i profiler Sessions rude og derefter vælge Indlæs fra fil.
Du kan inspicere en importeret spor i CPU Profiler meget som du gør medspor fanget direkte i CPU Profiler, med følgende undtagelser:
- CPU-aktivitet er ikke repræsenteret langs CPU-tidslinjen (undtagen i Systemsporing).
- tidslinjen i afsnittet tråde viser ikke trådtilstande som f.eksløb, venter eller sover (undtagen i Systemsporing).
Undersøg spor
sporvisningen i CPU-profilen giver flere måder at se information påfra registrerede spor.
for metodespor og funktionsspor kan du se Opkaldskortetdirekte i trådens tidslinje og Flammediagrammet, ovenfra og ned og bunden op faner fra Analyseruden. For systemspor kan du se Sporingshændelserne direkte i trådens tidslinje og Flame-diagrammet, fanerne oppefra og ned og nedefra fra Analysepanen.
Mus og tastaturgenveje er tilgængelige for letterenavigation af Opkaldsdiagrammer eller Sporingshændelser.
Undersøg spor ved hjælp af Opkaldsdiagrammet
Opkaldsdiagrammet giver en grafisk gengivelse af en metodesporing ellerfunktionssporing, hvor perioden og tidspunktet for et opkald er repræsenteret påvandret akse, og dets kaldede vises langs den lodrette akse. Opkald til system-API ‘er vises i orange, opkald til din apps egne metoder vises igrøn, og opkald til tredjeparts-API’ er (inklusive Java-sprog-API ‘ er) vises inblue. Figur 4 viser et eksempel på opkaldsdiagram og illustrerer begrebet selvtid, børn tid og total tid for en given metode eller funktion. Du kan lære mere om disse begreber i afsnittet om, hvordan duinspicerer spor ved hjælp af Top ned og bund op.
figur 4. Et eksempel opkaldsdiagram, der illustrererself, børn og total tid for metode D.
Tip: Hvis du vil springe kildekoden til en metode eller funktion, skal du højreklikke på den og vælge Spring til kilde. Dette fungerer fra en af fanerne i Analyseruden.
Undersøg spor ved hjælp af fanen Flame Chart
fanen Flame Chart giver et omvendt opkaldsdiagram, der aggregatesidentiske opkaldsstakke. Det vil sige identiske metoder eller funktioner, der delersamme sekvens af opkaldere indsamles og repræsenteres som en længere bjælke i aflame-diagram (snarere end at vise dem som flere kortere søjler, som vist i acall-diagram). Dette gør det lettere at se, hvilke metoder eller funktioner der forbrugermest tid. Dette betyder dog også, at den vandrette akse ikke repræsenterer atimeline; i stedet angiver den relative tid, hver metode eller funktion tager at udføre.
for at hjælpe med at illustrere dette koncept skal du overveje opkaldsdiagrammet i figur 5. Bemærk, at metode D foretager flere opkald til B (B1, B2 ogb3), og nogle af disse opkald til B ringer til C (C1 og 3).
figur 5. Et opkaldsdiagram med flere metodeopkaldder deler en fælles sekvens af opkaldere.
fordi B1, B2 og B3 deler den samme rækkefølge af opkaldere (a lp D lp B) De aggregeres, som vist i figur 6. Tilsvarende aggregeres C1 og C3, fordi de deler den sammesekvens af opkaldere (a Lusr D Lusr B lusr C); bemærk, at C2 ikke er inkluderetfordi den har en anden sekvens af opkaldere (a lusr D Lusr C).
figur 6. Aggregering af identiske metoder, der delerden samme opkaldsstak.
de aggregerede opkald bruges til at oprette flammediagrammet, som vist i figur 7.Bemærk, at for et givet opkald i et flammekort vises de kaldede, der forbruger mest CPU-tid, først.
Figur 7. En flamme diagram repræsentation af callchart vist i figur 5.
Undersøg spor ved hjælp af Top ned og bund op
fanen øverst ned viser en liste over opkald, hvor udvidelse af en metode orfunction node viser sine callees. Figur 8 viser en top ned graf for callchart i figur 4. Hver pil i grafen peger fra en opkalder til en callee.
som vist i figur 8 udvider noden til metode a i fanen øverst Nedviser dens callees, metoder B og D. derefter udvider noden til methodD sine callees, metoder B og C og så videre. I lighed med Flame charttab sporer de øverste træaggregater oplysninger for identiske metoder, der deler den samme opkaldsstak. Det vil sige, fanen Flame chart giver en grafikrepræsentation af fanen øverst ned.
fanen øverst ned indeholder følgende oplysninger for at hjælpe med at beskrive CPU-tid brugt på hvert opkald (tiderne er også repræsenteret som en procentdel af thethreads samlede tid over det valgte interval):
- selv: den tid, metoden eller funktionsopkaldet brugte på at udføre sin egen kode og ikke den af dens kaldte, som illustreret i figur 4 For metode D.
- børn: den tid, metoden eller funktionsopkaldet brugte på at udføre sincallees og ikke sin egen kode, som illustreret i figur 4 For metode D.
- børn: den tid, metoden eller funktionsopkaldet brugte på at udføre sincallees og ikke sin egen kode, som illustreret i figur 4 For metode D.
- Total: summen af metodens selv-og Børnetid. Dette repræsenterer den samlede tid, som appen brugte på at udføre et opkald, som illustreret infigure 4 For metode D.
figur 8. En top ned træ.
figur 9. En bund op træ for metode C fra figur 8.
fanen nederst op viser en liste over opkald, hvor udvidelse af en funktion ellermetodens node viser sine opkaldere. Ved hjælp af eksemplet spor vist i figur 8, figur 9 giver en bottom up træ til metode C. Åbning af noden for metode Cin bottom up-træet viser hver af sine unikke opkaldere, metoder B og D. Bemærk, at selvom B kalder C to gange, vises B kun en gang, når noden udvides tilmetode C i bunden op træet. Derefter udvides noden til B-displaydens opkalder, metoder A og D.
Bottom up-fanen er nyttig til sortering af metoder eller funktioner af dem, derforbruge den mest (eller mindst) CPU-tid. Du kan inspicere hver node for at bestemmehvilke opkaldere bruger mest CPU-tid på at påberåbe sig disse metoder eller funktioner.Sammenlignet med det øverste træ er timinginfo for hver metode eller funktion i abottom up tree med henvisning til metoden øverst på hvert træ (øverste knude).CPU-tid er også repræsenteret som en procentdel af trådens samlede tid under denne optagelse. Følgende tabel hjælper med at forklare, hvordan man fortolker timingoplysninger for den øverste node og dens opkaldere (undernoder).
selv | børn | Total | ||
---|---|---|---|---|
metode eller funktion øverst på bunden op træ (top node) | repræsenterer den samlede tid metoden eller funktionen brugt udfører sin egen kode og ikke den af dens callees. Sammenlignet med det øverste træ repræsenterer denne timinginformation en sum af alle opkald til denne metode eller funktion i løbet af optagelsens varighed. | repræsenterer den samlede tid, metoden eller funktionen brugte på at udføre sine callees og ikke sin egen kode. Sammenlignet med det øverste træ, repræsenterer denne timinginformation summen af alle opkald til denne metode eller Funktions callees i løbet af optagelsens varighed. | summen af selv tid og børn tid. | |
opkald (sub-noder) | repræsenterer den samlede selvtid for callee, når den ringer op. Ved hjælp af bottom up-træet i figur 9 som et eksempel ville selvtiden for metode B svare til summen af selvtiderne for hver udførelse af metode C, når den kaldes af B. | repræsenterer den samlede børnetid for callee, når den bliver påberåbt af den, der ringer op. Ved hjælp af bottom up-træet i figur 9 som et eksempel ville børnetiden for metode B svare til summen af børnetiderne for hver udførelse af metode C, når den kaldes af B. | summen af selvtid og børnetid. |
Bemærk: For en given optagelse stopper Android Studio med at indsamle nye datanår profilen når filstørrelsesgrænsen (dette stopper dog ikke optagelse). Dette sker typisk meget hurtigere, når der udføres instrumenterede spor, fordi denne type sporing indsamler flere data i en kortere tid sammenlignet med et sampletspor. Hvis du forlænger inspektionstiden til en periode for optagelsen, der fandt sted efter at have nået grænsen, ændres timingdata isporingsruden ikke (fordi der ikke er nye data tilgængelige). Derudover viser sporingsruden NaN for timingoplysninger, når du kun vælger den del af en optagelse, der ikke har tilgængelige data.
Undersøg systemspor
når du inspicerer et systemspor, kan du undersøge Sporingshændelser i thethreads tidslinje for at se detaljerne om begivenhederne, der forekommer på hver tråd.Hold musemarkøren over en begivenhed for at se navnet på begivenheden ogtid brugt i hver stat. Klik på en begivenhed for at se flere oplysninger i ruden analyse.
CPU-Kerneruden (som vist i figur 10) viser trådaktivitetsplanlagt på hver kerne. Hold musemarkøren over en trådaktivitet for at se, hvilken tråd denne kerne kører på på det pågældende tidspunkt.
Figur 10. Visning af CPU-aktivitet og Spor begivenheder for gengivelsestråden.
For yderligere oplysninger om inspektion af systemsporingsoplysninger, seundersøg UI-ydelsesproblemerafsnit af systrace
dokumentation.
Undersøg rammegengivelsesdata
Du kan inspicere, hvor lang tid det tager din app at gengive hver ramme på mainthread ogRenderThread
for at undersøge flaskehalse, der forårsager UI-jank og lavframerater.
Hvis du vil se billedgengivelsesdata,skal du registrere et spor ved hjælp af enkonfiguration, der giver dig mulighed for at spore systemopkald. Når du har optaget sporet, skal du kigge efter oplysninger om hver ramme under rammens tidslinje i Displayafsnittet, som vist i figur 11.
Figur 11. Hver ramme, der tager længere tid end 16mvises i rødt.