Savepearlharbor, o altă copie a haborului, pagina 4441

Savepearlharbor, o altă copie a haborului, pagina 4441
Un proverb celebru spune: "O minte este bună, dar două sunt mai bune". Este valabil nu numai pentru situațiile de zi cu zi, ci și pentru depanarea aplicațiilor. Prin combinarea "minții" diferitelor instrumente software, puteți obține nu numai avantaje cantitative, ci și calitative. De exemplu, alianța Android Logcat și amplificatorul VTune - acesta este doar un astfel de caz.







Cum pot harta mesaje de la Logcat pe cronologia Amplificatorului VTune? Acest lucru îi va oferi dezvoltatorilor posibilitatea de a vedea mesaje de la Logcat împreună cu informații despre performanță din cronologia VTune Amplifier. Ca rezultat, veți putea afla ce sa întâmplat exact la un anumit moment și veți înțelege imediat ce încărcare a sistemului a avut de la un eveniment, cum a afectat performanța.

Intel VTune Amplifier este capabil să proceseze și să integreze informații suplimentare despre performanță în propriile seturi de date, obținute cu ajutorul instrumentelor încorporate. Ele pot fi obținute prin utilizarea colectoarelor de date externe sau prin intermediul aplicației testate. Pentru a adăuga date externe la amplificatorul VTune, aveți nevoie de un fișier CSV cu o structură specifică în care sunt localizate informațiile colectate. Acest fișier, pentru a lucra în continuare cu acesta, trebuie încărcat în Amplificatorul VTune.

Detalii despre crearea propriilor fișiere de date CSV pot fi găsite în Ghidul utilizatorului pentru amplificatorul VTune. În special, în secțiunea VTune Amplifier> Ghidul utilizatorului> Importul datelor externe, există informații despre cum să creați astfel de fișiere. Există, de asemenea, exemple de structură internă a acestora. Pentru a face ca mesajele din Logcat să apară pe cronologie VTune, trebuie să urmați instrucțiunile pentru a le converti într-un fișier CSV și să încărcați fișierul rezultat în Amplificatorul VTune.

Să luăm în considerare un exemplu. Există o aplicație "com.example.Thread1". În el există o funcție în care sunt efectuate calcule grele. Iată cum arată ea, în termeni generali:

Rețineți că înainte de a putea crea o aplicație Android utilizând un amplificator VTune, este necesară pregătirea aplicației. Și anume, în fișierul AndroidManifest.xml, în secțiune . trebuie să fie activată depanarea:

Puteți instala versiunea de depanare a aplicației pe dispozitivul Android, de exemplu, utilizând instrumentele standard ale aplicației Android Studio. După instalarea aplicației, Android Studio va trebui să fie închis, altfel VTune Amplifier nu va putea să colecteze date. Pentru a combina colecția de mesaje Logcat și profilarea în Amplificatorul VTune, Logcat va trebui să fie rulat de la linia de comandă. Un instrument universal, potrivit pentru cei care lucrează în Windows, și cei care folosesc Linux - aceasta este shell-ul bash.







În mod implicit, dacă, de exemplu, executați Logcat cu comanda "$ adb logcat -v threadtime", datele vor fi afișate. Este mult mai convenabil să redirecționați ieșirea la un fișier extern. Aceasta se face printr-o astfel de comandă:

Redirecționăm ieșirea de la Logcat la fișierul log.txt, care va fi plasat în directorul curent.
Începeți colectarea datelor Logcat înaintea profilării în Amplificatorul VTune și opriți (Ctrl + C pe linia de comandă) - după.

Să revenim la exemplul nostru. Judecând după cronologia VTune Amplifier, care este prezentată mai jos, funcția a fost efectuată de 6 ori. ID-ul firului principal al aplicației este 12271. Coloanele maro sunt informații despre performanță (timpul procesorului) care au fost colectate în timpul profilării cu amplificatorul VTune.

De fiecare dată când funcția este executată, dacă colectăm mesajele Logcat cu comanda "logcat -v threadtime", obținem setul de date prezentat mai jos.

După primirea acestor date, le putem converti într-un fișier CSV de format adecvat, care este potrivit pentru descărcarea în Amplificatorul VTune. În conformitate cu documentația pentru amplificatorul VTune, fișierul CSV de care avem nevoie poate să arate astfel:

Aici, ca coloană de date "nume", eticheta utilizată pentru logare și linia de mesaj sunt utilizate. Ora mesajului intră în coloanele start_tsc.UTC și end_tsc. ID-ul procesului și ID-ul firului sunt reprezentate, respectiv, în fișierul CSV ca pid și tid. Câmpurile sunt separate prin virgule.

Acum trebuie să mergeți la Amplificatorul VTune și să rulați Analiza Tip> Import din comanda CSV, selectând fișierul de date nou creat pentru a importa. Aplicația va descărca datele și va afișa mesajele din Logcat pe cronologie cu informații despre performanță. Figura de mai jos arată modul în care mișcarea mouse-ului către un triunghi galben mic care indică locația mesajului afișează o fereastră pop-up cu datele din Logcat generate de aplicația noastră.

Iată câteva sfaturi pentru crearea fișierelor CSV.

Scenariu auxiliar

Am creat un script experimental bash (logcat2vtune.sh), care permite simplificarea acțiunilor descrise mai sus. Puteți să-l utilizați pentru a automatiza colecția de date Logcat și pentru a crea un fișier CSV. Scriptul poate colecta mesajele care se transmit la aplicațiile Logcat, precum și mesajele din kernelul sistemului. În plus, citește informații despre sistemul țintă, analizează rezultatele înregistrării și generează automat fișiere CSV.

Pentru a utiliza acest script, veți avea nevoie de un mediu bash. După cum sa menționat mai sus, în sistemele Linux acesta este mediul de lucru standard, iar în Windows puteți folosi, de exemplu, Cygwin.
Pentru a obține un fișier CSV cu date în timpul profilării cu amplificatorul VTune, trebuie să faceți următoarele:

Iată câteva exemple tipice de utilizare a scriptului.

Această comandă vă permite să colectați date Logcat, să selectați mesajele cu șirul "MYTEST" și să generați un fișier CSV. Logcat colectează datele utilizând următoarea comandă:

Cu această comandă, puteți să colectați mesaje de la "dmesg", să le filtrați pe linia "MYDRIVER" și să creați un fișier CSV.

În acest caz, pe linia temporală, puteți vedea mesajele din vmlinux cu TID 0 și jurnalele la nivel de utilizator de la Logcat cu TID 1922.

Pentru a afla mai multe despre lucrul cu scriptul, folosiți următoarea comandă: "logcat2vtune.sh -h".

Dacă doriți, puteți configura scriptul pentru nevoile dvs. Rețineți că "logcat2vtune.sh" este un proiect pilot, nu a fost supus unor teste complete. Dacă întâmpinați probleme atunci când lucrați cu el - ne puteți spune despre asta.

Folosind instrumentele și fluxurile de lucru descrise mai sus, puteți genera profilarea și depanarea aplicațiilor Android la un nivel mai ridicat, combinând informațiile din Android Logcat cu datele de performanță de la amplificatorul VTune. Sperăm că acest lucru va ajuta aplicațiile dvs. să cucerească noi înălțimi de performanță și economie.







Trimiteți-le prietenilor: