Maybaygiare.org

Blog Network

inspectați activitatea procesorului cu CPU Profiler

optimizarea utilizării procesorului aplicației dvs. are multe avantaje, cum ar fi furnizarea unei experiențe de utilizator mai rapide și mai ușoare și păstrarea duratei de viață a bateriei dispozitivului.

puteți utiliza PROFILERUL CPU pentru a inspecta utilizarea procesorului aplicației și activitatea firului în timp real în timp ce interacționați cu aplicația dvs. sau puteți inspecta detaliile din urmele metodei înregistrate, urmele funcției și urmele sistemului.

tipurile specifice de informații pe care PROFILERUL CPU le înregistrează și le afișează sunt determinate de configurația de înregistrare pe care o alegeți:

  • System Trace: captează detalii cu granulație fină care vă permit să inspectați modul în care aplicația dvs. interacționează cu resursele sistemului.
  • urme de metode și funcții: pentru fiecare fir din procesul aplicației, puteți afla ce metode (Java) sau funcții (C / C++) sunt executate într-o perioadă de timp și resursele CPU pe care fiecare metodă sau funcție le consumă în timpul execuției. De asemenea, puteți utiliza urme de metode și funcții pentru a identifica apelanțiși callees. Un apelant este o metodă sau o funcție care invocă o altă funcție methodor, iar un apel este unul care este invocat de o altă metodă orfunction. Puteți utiliza aceste informații pentru a determina ce metode sau funcții sunt responsabile pentru invocarea prea frecventă a anumitor sarcini cu resurse mari și pentru a optimiza codul aplicației dvs. pentru a evita munca inutilă.

    la înregistrarea urmelor metodei, puteți alege eșantionate sau instrumentedrecording. Când înregistrați urme de funcții, puteți utiliza numai înregistrarea eșantionată.

pentru detalii despre utilizarea și alegerea fiecăreia dintre aceste opțiuni de urmărire, consultați Alegerea unei configurații de înregistrare.

CPU Profiler overview

pentru a deschide CPU Profiler, urmați acești pași:

  1. Selectați Vizualizare> Instrument Windows> Profiler sau faceți clic pe profil în bara de instrumente.

    dacă vi se solicită dialogul selectare țintă de implementare, alegeți dispozitivul pentru care să implementați aplicația pentru profilare. Dacă ați conectat un dispozitiv peste USBbut nu îl vedeți listat, asigurați-vă că avețidebugging USB activat.

  2. Faceți clic oriunde în cronologia procesorului pentru a deschide PROFILERUL procesorului.

când deschideți PROFILERUL CPU, Acesta începe imediat să afișeze activitatea CPUusage și thread a aplicației. Ar trebui să vedeți ceva similar cu figura 1.

Figura 1. Termene în Profiler CPU.

așa cum este indicat în Figura 1, vizualizarea implicită pentru PROFILERUL CPU include următoarele termene:

  1. cronologie eveniment: Afișează activitățile din aplicație pe măsură ce trec prin diferite stări din ciclul lor de viață și indică interacțiunile utilizatorului cu dispozitivul, inclusiv evenimentele de rotație a ecranului. Pentru informații despre activarea cronologiei evenimentului pe dispozitivele care rulează Android 7.1 (nivel API 25) și versiuni inferioare, consultați Activarea profilării avansate.
  2. CPU timeline: Afișează utilizarea procesorului în timp real a aplicației dvs.—ca procent din timpul total disponibil al procesorului—și numărul total de fire pe care le folosește aplicația dvs. Cronologia arată, de asemenea, utilizarea procesorului altor procese (cum ar fi procesele de sistem sau alte aplicații), astfel încât să o puteți compara cu utilizarea aplicației. Puteți inspecta datele istorice de utilizare a procesorului mutând mouse-ul de-a lungul axei orizontale a cronologiei.
  3. fir activitate timeline: listează fiecare fir care aparține procesului de aplicație și indică activitatea lor de-a lungul unei cronologii folosind culorile enumerate mai jos. După ce înregistrați o urmărire, puteți selecta un fir din această cronologie pentru a inspecta datele sale în panoul urmărire.
    • Verde: firul este activ sau este gata de utilizare a procesorului. Asta este, este într-o stare de funcționare sau runnable.
    • Galben: firul este activ, dar așteaptă o operație de I/O, cum ar fi discul sau i / o de rețea, înainte de a-și putea finaliza activitatea.
    • Gri: firul doarme și nu consumă timp CPU. Acest lucru apare uneori atunci când firul necesită acces la o resursă care nu este încă disponibilă. Fie firul intră în somn voluntar, fie nucleul pune firul în somn până când resursa necesară devine disponibilă.

    PROFILERUL CPU raportează, de asemenea, utilizarea procesorului de fire pe care Android Studio și platforma Android le adaugă procesului aplicației dvs.—cum ar fi JDWPProfile SaverStudio:VMStatsStudio:Perfa și Studio:Heartbeat (deși numele exacte afișate în cronologia activității firului pot varia). Android Studio raportează aceste date, astfel încât să puteți identifica când activitatea firului și utilizarea procesorului sunt de fapt cauzate de codul aplicației.

înregistrați urme

pentru a începe înregistrarea unei urme, alegeți o configurație de înregistraredin oricare dintre meniurile derulante de deasupra sau dedesubtul PROFILATORULUI CPU și faceți clic pe Înregistrare.

Figura 2. PROFILERUL CPU afișează starea, durata și tipul de înregistrare care se face.

interacționați cu aplicația, apoi faceți clic pe Stop când ați terminat. Theprofiler afișează automat informațiile de urmărire în panoul de urmărire, ashown în Figura 3:

Figura 3. PROFILERUL CPU după înregistrarea amethod trace.

  1. interval selectat: determină porțiunea din timpul înregistrat de inspectat în panoul de urmărire. Când înregistrați pentru prima dată o urmă, PROFILATORUL CPU selectează automat întreaga lungime a înregistrării dvs. în cronologia procesorului. Pentru a inspecta datele de urmărire doar pentru o porțiune din intervalul de timp înregistrat, trageți marginile regiunii evidențiate.
  2. secțiunea de interacțiune: afișează interacțiunea utilizatorului și evenimentele ciclului de viață al aplicației de-a lungul unei cronologii.
  3. Threads secțiune: afișează activitatea de stat fir (cum ar fi rularea, dormit, etc.) și graficul de apel (sau graficul de evenimente de urmărire în System Trace) pentru fiecare fir de-a lungul unei cronologii.
    • Utilizați comenzile rapide de la mouse și tastatură pentru a naviga în cronologie.
    • faceți dublu clic pe numele firului sau apăsați Enter în timp ce un fir este selectat pentru a extinde sau restrânge un fir.
    • selectați un fir pentru a vedea informații suplimentare în Panoul analiză. Țineți apăsat Shift sau Ctrl (comandă pe Mac) pentru a selecta mai multe fire.
    • selectați un apel de metodă (sau un eveniment de urmărire în urmărirea sistemului) pentru a vedea informații suplimentare în Panoul analiză.
  4. panoul de analiză: Afișează datele de urmărire pentru intervalul de timp și firul sau metoda de apel ați selectat. În acest panou, puteți selecta modul de vizualizare a fiecărei urme de stivă (utilizând filele analiză) și modul de măsurare a timpului de execuție (utilizând meniul derulant referință de timp).
  5. File din panoul de analiză: alegeți modul de afișare a detaliilor de urmărire. Pentru detalii despre fiecare opțiune, consultați inspectați urmele.
  6. time reference menu: Selectați una dintre următoarele opțiuni pentru a determina modul în care sunt măsurate informațiile de sincronizare pentru fiecare apel (acceptate numai în metodele java Sample/Trace):
    • Wall clock time: Informațiile de sincronizare reprezintă timpul efectiv scurs.
    • Thread time: informațiile de sincronizare reprezintă timpul scurs efectiv minus orice porțiune din acel moment când firul nu consumă resurse CPU. Pentru orice apel dat, timpul său de fir este întotdeauna mai mic sau egal cu timpul ceasului de perete. Utilizarea thread time vă oferă o mai bună înțelegere a cât de mult din utilizarea efectivă a procesorului unui thread este consumată de o anumită metodă sau funcție.
  7. Filter: filtrează datele după funcție, metodă, clasă sau numele pachetului. De exemplu, dacă doriți să identificați rapid datele de urmărire legate de un anumit apel, tastați numele în câmpul de căutare. În fila Diagramă flacără, sunt evidențiate stivele de apeluri care includ un apel, un pachet sau o clasă care se potrivește cu interogarea de căutare. În filele de sus în jos și de jos în sus, acele stive de apeluri sunt prioritizate față de alte rezultate de urmărire. De asemenea, puteți activa următoarele opțiuni bifând caseta corespunzătoare de lângă câmpul de căutare:
    • Regex: pentru a include expresii regulate în căutarea dvs., utilizați această opțiune.
    • Match case: dacă căutarea dvs. este sensibilă la majuscule, utilizați această opțiune.

Sfat: când inspectați cronologia firelor, sunt disponibile următoarele comenzi rapide:

  • Zoom in: apăsați W sau derulați rotița mouse-ului în timp ce țineți Ctrl (comandă pe Mac).
  • Zoom out: apăsați S sau derulați rotița mouse-ului înapoi în timp ce țineți Ctrl (comandă pe Mac).
  • Pan stânga: Apăsați A sau trageți mouse-ul spre dreapta în timp ce țineți spațiu.
  • Pan dreapta: Apăsați D sau trageți mouse-ul spre stânga în timp ce țineți spațiu.
  • extindeți sau restrângeți un fir: faceți dublu clic pe numele firului sau apăsați Enter în timp ce este selectat un fir.

alegeți o configurație de înregistrare

înainte de a începe înregistrarea informațiilor de urmărire, alegeți configurația de înregistrare corespunzătoare pentru informațiile de profilare pe care doriți să le capturați:

  • Exemple de metode Java: capturează stiva de apeluri a aplicației dvs. la intervale frecvente în timpul executării codului bazat pe Java al aplicației. Profilerul compară seturi de date capturate pentru a obține informații de sincronizare și utilizare a resurselor despre execuția codului bazat pe Java a aplicației.

    o problemă inerentă a urmăririi bazate pe eșantionare este că, dacă aplicația dvs. introduce o metodă după o captare a stivei de apeluri și iese din metodă înainte de următoarea captare, acel apel de metodă nu este înregistrat de profiler. Dacă sunteți interesat de urmărirea metodelor cu astfel de cicluri de viață scurte, ar trebui să utilizați urmărirea instrumentată.

  • Trace metode Java: instrumente aplicația în timpul rulării pentru a înregistra o marcă de timp la începutul și la sfârșitul fiecărui apel metodă. Marcajele de timp sunt colectate și comparate pentru a genera date de urmărire a metodelor, inclusiv informații de sincronizare și utilizarea procesorului.

    rețineți că cheltuielile generale asociate cu instrumentarea fiecărei metode afectează performanța runtime și pot influența datele de profilare; acest lucru este și mai vizibil pentru metodele cu cicluri de viață relativ scurte. În plus, dacă aplicația dvs. execută un număr mare de metode într-un timp scurt, profilatorul poate depăși rapid limita de dimensiune a fișierului și este posibil să nu poată înregistra alte date de urmărire.

  • exemplu C / C++ Funcții: surprinde urme eșantionate de fire native aplicației. Pentru a utiliza această configurație, trebuie să implementați aplicația pe un dispozitiv care rulează Android 8.0 (nivel API 26) sau o versiune ulterioară.

    intern, această configurație utilizeazăsimpleperf pentru a urmări codul nativ al aplicației. Dacă doriți să specificați opțiuni suplimentare pentru simpleperf, cum ar fi eșantionarea CPU-urilor specifice dispozitivului sau specificarea duratelor de eșantionare la o precizie ridicată, puteți utiliza simpleperf din linia de comandă.

  • apeluri de sistem Trace: captează detalii cu granulație fină care vă permit să inspectați modul în care aplicația dvs. interacționează cu resursele sistemului. Puteți inspecta temporizări exacte și durate ale stărilor de fir, vizualiza în cazul în care blocajele CPU sunt în toate miezurile, și se adaugă evenimente urme personalizate pentru a analiza. Astfel de informații pot fi cruciale atunci când depanați problemele de performanță. Pentru a utiliza această configurație, trebuie să implementați aplicația pe un dispozitiv care rulează Android 7.0 (nivel API 24) sau o versiune ulterioară.

    în timp ce utilizați această configurație de urmărire, Puteți marca vizual rutine importante de cod în cronologia profiler prin instrumentarea codului. Pentru a instrumentaliza codul C / C++, utilizați API-ul de urmărire nativ furnizat de trace.h. Pentru a instrument de cod Java, utilizați Trace clasa. Pentru mai multe informații, consultați Instrumentați codul aplicației.

    această configurație de urmărire este construită pesystrace. Puteți utilizasystrace utilitate linie de comandă pentru a specifica opțiuni dincolo de cele furnizate în Profiler CPU. Datele suplimentare la nivel de sistem furnizate de systrace vă pot ajuta să inspectați procesele de sistem native și să depanați cadrele abandonate sau întârziate.

    pe dispozitivele care rulează Android 9 (nivel API 28) sau o versiune ulterioară, puteți utiliza o aplicație de sistem numită urmărirea sistemului pentru a înregistra urmele sistemului pe un dispozitiv.

Creați, editați sau vizualizați o configurație de înregistrare

creați, editați și vizualizați configurații de înregistrare în caseta de dialog CPU RecordingConfigurations, pe care o deschideți selectând Editare configurațiidin meniul derulant configurații de înregistrare din partea de sus a Profilerului CPU.

pentru a vizualiza setările unei configurații de înregistrare existente, selectați-o în panoul din stânga al dialogului configurații de înregistrare CPU.

pentru a crea o nouă configurație de înregistrare, faceți următoarele:

  1. Faceți clic pe Adăugare în partea stângă sus a dialogului. Aceasta creează o nouă configurație cu unelesetările implicite.
  2. denumiți configurația.
  3. Selectați o tehnologie de urmărire.
  4. pentru configurațiile de înregistrare eșantionate, se specifică intervalul de eșantionare inmicrosecunde (inqq). Această valoare reprezintă timpul dintre fiecare eșantion de stivă de apeluri a aplicației dvs. Cu cât intervalul specificat este mai scurt, cu atât mai rapidajungeți la limita de dimensiune a fișierului pentru datele înregistrate.
  5. specificați limita de dimensiune a fișierului, în megaocteți (MB), pentru datele înregistratecare este scris pe dispozitivul conectat. Când opriți înregistrarea, AndroidStudio analizează aceste date și le afișează în fereastra profiler. Deci, dacă dvs. creșteți limita și înregistrați o cantitate mare de date, Android Studio durează mult mai mult pentru a analiza fișierul și poate deveni fără răspuns.

    Notă: Dacă utilizați un dispozitiv conectat care rulează Android 8.0 (nivel API 26)sau mai mare, nu există nicio limită pentru dimensiunea fișierului datelor de urmărire, iar această valoare este ignorată. Cu toate acestea, trebuie să fiți atenți la cât de multe datedispozitivul colectează după fiecare Înregistrare—Android Studio poate avea dificultateparcarea fișierelor de urmărire mari. De exemplu, dacă înregistrați fie un sampledtrace cu un interval scurt de eșantionare, fie o urmărire instrumentată în timp ce aplicația dvs. apelează multe metode într-un timp scurt, veți genera rapid fișiere de urmărire mari.

  6. pentru a accepta modificările și a continua să efectuați modificări la alte configurații,faceți clic pe Aplicare. Pentru a accepta toate modificările aplicate și a închide dialogul, faceți clic peOK.

înregistrați activitatea procesorului cu API-ul de depanare

puteți utilizaDebug API pentru a oferi aplicației dvs. posibilitatea de a porni și opri înregistrarea activității procesorului în PROFILERUL procesorului.

CPU Profiler începe înregistrarea atunci când aplicația solicităstartMethodTracing(String tracePath),iar CPU Profiler oprește înregistrarea atunci când aplicația solicităstopMethodTracing(). Whilerecording activitatea CPU care este declanșat folosind acest API, Profiler CPU showsDebug API ca configurația activă de înregistrare CPU.

pentru a controla înregistrarea activității procesorului cuDebug API, implementați aplicația dvs. cu instrumente pe un dispozitiv care rulează Android 8.0 (nivel API 26) sau o versiune ulterioară.

Important: API-ulDebug este destinat utilizăriiseparat de alte mijloace pentru pornirea și oprirea înregistrării activității CPU, cum ar fi butoanele din interfața grafică a utilizatorului Profiler CPU și setarea în configurația de înregistrare pentru înregistrarea automată pe appstartup.

datorită limitei de dimensiune a tamponului de 8 MB, metodastartMethodTracing(String tracePath) din API-ulDebug este proiectată pentru intervale scurte sau scenarii care suntgreu pentru a porni / opri înregistrarea manual. Pentru perioade mai lungi de înregistrare, utilizațithe Profiler UI în Android Studio.

Pentru mai multe informații, consultați jurnalele de urmărire prin instrumentarea aplicației.

înregistrați activitatea procesorului în timpul pornirii aplicației

pentru a începe înregistrarea automată a activității procesorului în timpul pornirii aplicației, efectuați următoarele:

  1. selectați Run> Editați configurațiile.
  2. în fila profilare, bifați caseta de lângă începeți înregistrarea unei metode la pornire.
  3. Selectați o configurație de înregistrare CPU din meniu.
  4. Faceți clic pe Aplicare.
  5. implementați aplicația pe un dispozitiv care rulează Android 8.0 (nivel API 26) sau o versiune ulterioară prin selectarea profilului Run>.

Export urme

după ce înregistrați activitatea CPU cu profiler CPU, puteți exporta datele asa.trace fișier pentru a partaja cu alții sau de a inspecta mai târziu.

pentru a exporta un fișier de urmărire din cronologia procesorului, procedați în felul următor:

  1. în cronologia procesorului, faceți clic dreapta pe urmărirea metodei înregistrate sau urmărirea sistemuluipe care doriți să îl exportați.
  2. selectați Export trace din meniu.
  3. navigați la locul în care doriți să salvați fișierul, specificați numele fișierului și faceți clic peOK.

pentru a exporta un fișier de urmărire din panoul sesiuni, procedați în felul următor:

  1. În panoul sesiuni, faceți clic dreapta pe urmărirea înregistrată pe care doriți să o exportați.
  2. Faceți clic pe butonul Export method trace sau Export system trace în dreptul intrării sesiunii.
  3. navigați la locul în care doriți să salvați fișierul, specificați numele fișierului și faceți clic peOK.

urme de Import

puteți importa.trace fișiere create cuDebug API sau CPU Profiler.

importați fișierul de urmărire făcând clic pe Start New profiler session în Panoul sesiuni al profilerului și apoi selectând încărcare din fișier.

puteți inspecta o urmă importată în PROFILERUL CPU la fel cum faceți cu urmele capturate direct în PROFILERUL CPU, cu următoarele excepții:

  • activitatea procesorului nu este reprezentată de-a lungul cronologiei procesorului (cu excepția urmăririi sistemului).
  • cronologia din secțiunea Threads nu afișează stările thread, cum ar fi running, waiting sau sleeping (cu excepția sistemului Trace).

inspectați urmele

vizualizarea urmăririi din PROFILERUL CPU oferă mai multe moduri de vizualizare a informațiilordin urmele înregistrate.

pentru urme de metode și urme de funcții, puteți vizualiza diagrama Apeluluidirect în cronologia Threads și în diagrama Flame, de sus în jos și în filele bottom Up din panoul analiză. Pentru urmele de sistem, puteți vizualiza evenimentele de urmărire direct în cronologia firelor și în filele flame Chart, Top Down și Bottom Up din Analysispane.

comenzile rapide de la Mouse și tastatură sunt disponibile pentru ușurințănavigarea diagramelor de apel sau a evenimentelor de urmărire.

inspectați urmele folosind diagrama de apeluri

diagrama de apeluri oferă o reprezentare grafică a unei urme de metodă sau a unei funcții, unde perioada și calendarul unui apel sunt reprezentate pe axa orizontală, iar apelurile sale sunt afișate de-a lungul axei verticale. Apelurile către API-urile sistemului sunt afișate în portocaliu, apelurile către metodele proprii ale aplicației sunt afișate în verde, iar apelurile către API-uri terțe (inclusiv API-urile limbajului Java) sunt afișate în albastru. Figura 4 prezintă un exemplu de diagramă de apel și ilustrează conceptul detimpul propriu, timpul copiilor și timpul total pentru o anumită metodă sau funcție. Puteți afla mai multe despre aceste concepte în secțiunea despre cum săinspectați urmele folosind de sus în jos și de jos în sus.

Figura 4. Un exemplu de diagramă de apel care ilustreazăauto, copii și timpul total pentru metoda D.

sfat: Pentru a sări codul sursă al unei metode sau funcții, faceți clic dreapta pe acesta și selectați Salt la sursă. Aceasta funcționează din oricare dintre filele panoului de analiză.

inspectați urmele folosind fila Flame Chart

fila Flame Chart oferă o diagramă de apel inversată care agregă stive de apeluri identice. Adică metode sau funcții identice care partajeazăaceeași secvență de apelanți sunt colectate și reprezentate ca o bară mai lungă în diagrama aprinsă (mai degrabă decât afișarea lor ca mai multe bare mai scurte, așa cum se arată în diagrama acall). Acest lucru face mai ușor să vedeți ce metode sau funcții consumăcel mai mult timp. Cu toate acestea, acest lucru înseamnă, de asemenea, că axa orizontală nu reprezintă atimeline; în schimb, indică cantitatea relativă de timp necesară fiecărei metode sau funcții pentru a executa.

pentru a ilustra acest concept, luați în considerare graficul de apeluri din Figura 5. Notăaceastă metodă d efectuează mai multe apeluri către B (B1, B2 și B3), iar unele dintre aceste apeluri către B efectuează un apel către C (C1 și C3).

Figura 5. O diagramă de apel cu mai multe metode apelecare împărtășesc o secvență comună de apelanți.

deoarece B1, B2 și B3 au aceeași secvență a apelanților (a. În mod similar, C1 și C3 sunt agregate, deoarece au aceeași secvență de apelanți (A. C. D. C. B. C.); Rețineți că C2 nu este inclus, deoarece are o secvență diferită de apelanți (A. C. D. C. C.).

Figura 6. Agregarea metodelor identice care partajeazăaceeași stivă de apeluri.

apelurile agregate sunt utilizate pentru a crea diagrama flăcării, așa cum se arată în Figura 7.Rețineți că, pentru orice apel dat într-o diagramă de flacără, apelurile care consumă cel mai mult timp CPU apar mai întâi.

Figura 7. O reprezentare diagramă flacără a callchart prezentat în Figura 5.

inspectați urmele folosind de sus în jos și de jos în sus

fila de sus în jos afișează o listă de apeluri în care extinderea unei metode sau a unui nod funcțional afișează apelurile sale. Figura 8 prezintă un grafic de sus în jos pentru diagrama de apel din Figura 4. Fiecare săgeată din grafic indică de la un apelant la un apel.

așa cum se arată în figura 8, extinderea nodului pentru metoda A în fila de sus în josafișează apelurile sale, metodele B și D. După aceea, extinderea nodului pentru metoda d își expune apelurile, metodele B și C și așa mai departe. Similar cu Flame charttab, arborele de sus în jos agregă informații de urmărire pentru metode identice care împărtășesc aceeași stivă de apeluri. Adică, fila Flame chart oferă un graficreprezentarea filei de sus în jos.

fila de sus în jos oferă următoarele informații pentru a ajuta la descrierea CPUtime petrecut pe fiecare apel (ori sunt, de asemenea, reprezentate ca un procent din timpul total thethread pe intervalul selectat):

  • Auto: timpul metoda sau funcția de apel petrecut executarea propriul cod și nu cea a callees sale, așa cum este ilustrat în Figura 4 pentru metoda D.
  • Copii: timpul metoda sau funcția de apel petrecut executarea itscallees și nu propriul cod, așa cum este ilustrat în Figura 4 pentru metoda D.
  • Copii: timpul metoda sau funcția de apel petrecut executarea itscallees și nu propriul cod, așa cum este ilustrat în Figura 4 pentru metoda D.
  • copii: timpul metoda sau funcția de apel petrecut executarea itscallees și nu propriul cod, așa cum este ilustrat în Figura 4 pentru metoda D.
  • D.
  • total: suma timpului de sine și a copiilor metodei. Thisrepressents timpul total app petrecut executarea unui apel, așa cum este ilustrat infigure 4 pentru metoda D.

figura 8. Un copac de sus în jos.

Figura 9. Un arbore de Jos în sus pentru metoda C din figura 8.

fila de jos în sus afișează o listă de apeluri în care extinderea nodului unei funcții ormethod afișează apelanții săi. Folosind exemplul urmă prezentat în figura 8, figura 9 oferă un arbore de jos în sus pentru metoda C. Deschiderea nodului pentru metoda Cîn arborele de jos în sus afișează fiecare dintre apelanții săi unici, metodele B și D. Notăcă, deși B apelează C de două ori, B apare o singură dată la extinderea nodului formethod C în arborele de jos în sus. După aceea, extinderea nodului pentru B afișeazăapelantul său, metodele a și D.

fila de jos în sus este utilă pentru sortarea metodelor sau funcțiilor de către cei careconsumă cel mai mult (sau cel mai puțin) timp CPU. Puteți inspecta fiecare nod pentru a determinacare apelanți petrec cel mai mult timp CPU invocând aceste metode sau funcții.Comparativ cu arborele de sus în jos, informațiile de sincronizare pentru fiecare metodă sau funcție din arborele abottom up se referă la metoda din partea de sus a fiecărui copac (nodul de sus).Timpul procesorului este, de asemenea, reprezentat ca procent din timpul total al firului în timpulaceastă înregistrare. Următorul tabel vă ajută să explicați cum să interpretați informațiile de timp pentru nodul de sus și apelanții săi (sub-noduri).

auto copii Total
metoda sau funcția din partea de sus a arborelui de jos în sus (nodul de sus) reprezintă timpul total pe care metoda sau funcția l-a petrecut executând propriul cod și nu cel al apelelor sale. În comparație cu arborele de sus în jos, aceste informații de sincronizare reprezintă o sumă a tuturor apelurilor către această metodă sau funcție pe durata înregistrării. reprezintă timpul total pe care metoda sau funcția l-a petrecut executându-și apelurile și nu propriul cod. În comparație cu arborele de sus în jos, aceste informații de sincronizare reprezintă suma tuturor apelurilor către această metodă sau funcția lui callees pe durata înregistrării. suma timpului de sine și a timpului copiilor.
apelanții (sub-noduri) reprezintă timpul total de sine al apelantului atunci când este apelat de apelant. Folosind arborele de jos în sus din Figura 9 ca exemplu, timpul de sine pentru metoda B ar fi egal cu suma timpilor de sine pentru fiecare execuție a metodei C atunci când este apelat de B. reprezintă timpul total al copiilor apelatului atunci când este invocat de apelant. Folosind arborele de jos în sus din Figura 9 ca exemplu, timpul copiilor pentru metoda B ar fi egal cu suma timpilor copiilor pentru fiecare execuție a metodei C atunci când este apelată de B. suma timpului de sine și a timpului copiilor.

notă: Pentru o înregistrare dată, Android Studio nu mai colectează date noicând profilatorul atinge limita de dimensiune a fișierului (totuși, acest lucru nu se oprește acoloînregistrare). Acest lucru se întâmplă de obicei mult mai rapid atunci când se efectuează urme modificate, deoarece acest tip de urmărire colectează mai multe date într-un timp mai scurt, comparativ cu o urmă eșantionată. Dacă extindeți timpul de inspecție în aperioada înregistrării care a avut loc după atingerea limitei, datele de sincronizare din panoul de urmărire nu se modifică (deoarece nu sunt disponibile date noi). În plus, panoul de urmărire afișează NaN pentru informații de sincronizare atunci când selectați numai porțiunea unei înregistrări care nu are date disponibile.

inspectați urmele de sistem

când inspectați o urmă de sistem, puteți examina evenimentele de urmărire din cronologia theThreads pentru a vizualiza detaliile evenimentelor care apar pe fiecare fir.Plasați cursorul mouse-ului peste un eveniment pentru a vedea numele evenimentului șitimpul petrecut în fiecare stat. Faceți clic pe un eveniment pentru a vedea mai multe informații înpanoul analiză.

Panoul CPU Cores (așa cum se arată în Figura 10) arată thread activity scheduledpe fiecare nucleu. Plasați cursorul mouse-ului peste o activitate de fir pentru a vedea pe ce fir rulează acest nucleu în acel moment.

Figura 10. Vizualizarea activității procesorului și urmărirea evenimentelor pentru firul de randare.

pentru informații suplimentare despre inspectarea informațiilor de urmărire a sistemului, consultați secțiunea investigarea problemelor de performanță ale UI din documentațiasystrace.

inspectați datele de redare a cadrelor

puteți inspecta cât durează aplicația dvs. pentru a reda fiecare cadru pe firul principal șiRenderThread pentru a investiga blocajele care cauzează jank UI și lowframerate.

pentru a vedea datele de randare a cadrelor,înregistrați o urmărire utilizând o configurare care vă permite să urmăriți apelurile de sistem. După înregistrareacursă, căutați informații despre fiecare cadru sub cronologia cadrelor însecțiunea de afișare, așa cum se arată în Figura 11.

Figura 11. Fiecare cadru care durează mai mult de 16meste afișat în roșu.

Lasă un răspuns

Adresa ta de email nu va fi publicată.