Visualizator formata praćenja Chromea
Možete koristiti praćenje cijelog staka (full stack tracing) za praćenje od najviše razine QML-a ili JavaScript koda do C++-a i sve do prostora kernela. To vam omogućuje mjerenje performansi aplikacije i provjeru je li aplikacija vezana uz CPU ili I/O, odnosno je li pod utjecajem drugih aplikacija koje se izvršavaju na istom sustavu. Praćenje pruža uvid u to što sustav radi i zašto se aplikacija ponaša na određeni način. Pokazuje kako se hardver koristi i što rade kernel i aplikacija.
Informacije o praćenju mogu vam reći više o podacima koji QML Profiler prikuplja. Na primjer, možete provjeriti zašto evaluacija trivijalne veze traje toliko dugo. To može biti uzrokovano izvršavanjem C++ koda ili sporom disk I/O operacijom.
Nekoliko alata za praćenje (kao što je chrome://about) može generirati informacije o događajima praćenja Chromea u formatu Chrome Trace Format (CTF). CTF datoteke možete otvoriti u Qt Creator za pregled. To je posebno korisno pri pregledu zapisnika većih od 100 MB, koje je teško pregledati pomoću ugrađenog preglednika zapisnika (chrome://tracing) zbog njegove velike potrošnje memorije.
Visualizator podržava sve vrste događaja koje se koriste u podacima koje generira LTTng okvir za praćenje, pretvorenima u CTF. Međutim, neke od naprednijih vrsta događaja koje se koriste, na primjer, u praćenjima sustava Android, nisu podržane. Visualizator tiho zanemaruje nepodržane vrste događaja.
Visualizator podržava sljedeće vrste događaja:
- Početni, završni, trajni i trenutačni događaji
- Događaji brojača (grafikoni)
- Događaji metapodataka (naziv procesa i niti)
Otvaranje JSON datoteka
Za otvaranje JSON datoteka za pregled odaberite Analyze > Chrome Trace Format Viewer > Load JSON File.
Vizualizacija događaja
Prikaz " Timeline " prikazuje grafički prikaz događaja praćenja i sažet prikaz svih zabilježenih događaja.

Svaka kategorija u vremenskoj crti opisuje nit u aplikaciji. Premjestite pokazivač na događaj (5) u retku kako biste vidjeli njegovo trajanje i kategoriju događaja. Da biste prikazali informacije samo kada je događaj odabran, onemogućite gumb View Event Information on Mouseover (4).
Okvir (10) sažima razdoblje za koje su prikupljeni podaci. Povucite raspon zumiranja (8) ili kliknite na okvir kako biste se pomaknuli unutar njega. Za kretanje između događaja odaberite gumbe za pomicanje naprijed ( Jump to Previous Event ) i natrag ( Jump to Next Event ) (1).
Show Zoom Slider Odaberite gumb za zumiranje (2) kako biste otvorili klizač koji možete koristiti za postavljanje razine zumiranja. Također možete povući ručke za zumiranje (9). Za resetiranje zadane razine zumiranja, kliknite desnom tipkom miša na vremensku crtu kako biste otvorili kontekstualni izbornik i odaberite Reset Zoom.
Odaberite gumb
(Restrict to Threads) (6) za odabir niti koje se prikazuju.
Odabir raspona događaja
Možete odabrati raspon događaja (7) kako biste vidjeli vrijeme koje on predstavlja ili zumirali u određenu regiju zapisa. Odaberite gumb Select Range (3) za aktiviranje alata za odabir. Zatim kliknite na vremenskoj crti kako biste odredili početak raspona događaja. Povucite ručku za odabir kako biste definirali kraj raspona.
Raspone događaja možete koristiti i za mjerenje kašnjenja između dva uzastopna događaja. Postavite raspon između kraja prvog događaja i početka drugog događaja. Polje " Duration " prikazuje kašnjenje između događaja u milisekundama.
Za zumiranje raspona događaja dvaput kliknite na njega.
Da biste uklonili raspon događaja, zatvorite dijalog Selection.
Pregled statistike

Prikaz Statistics -a prikazuje broj uzoraka u kojima se svaka funkcija u vremenskoj crti nalazila, ukupno i kada je bila na vrhu hrpe (što se naziva self). To vam omogućuje da ispitate koje funkcije trebate optimizirati. Veliki broj pojavljivanja može ukazivati na to da se funkcija nepotrebno pokreće ili da joj je potrebno jako dugo za izvršenje.
Prikupljanje LTTng podataka
LTTng je alat za praćenje za Linux koji možete primijeniti na ugrađenim Linux sustavima kako biste saznali kako optimizirati vrijeme pokretanja aplikacije.
Qt ima skup kernel trace pointova i podsustav za praćenje za prilagođene trace pointove u korisničkom prostoru.
Konfiguriranje kernela
Da biste koristili LTTng, morate postaviti sljedeće opcije konfiguracije za kernel prije njegove izgradnje:
CONFIG_HIGH_RES_TIMERSCONFIG_KALLSYMSCONFIG_MODULESCONFIG_TRACEPOINTS
Preporučujemo da postavite sljedeće dodatne opcije:
CONFIG_EVENT_TRACINGCONFIG_HAVE_SYSCALL_TRACEPOINTSCONFIG_KALLSYMS_ALL
U Yocto-u možete aktivirati gore navedene opcije u Menu > Config > Kernel Hacking > Tracers.
Instalacija LTTng
Nakon što izgradite jezgru i postavite je na svoj uređaj, morat ćete na svoj uređaj instalirati sljedeće LTTng pakete:
lttng-toolsza upravljanje sesijom praćenjalttng-modulesza kernel trace točkelttng-ustza trace točke korisničkog prostora
U Yocto-u samo trebate omogućiti EXTRA_IMAGE_FEATURES += "tools profile".
Izrada Qt-a s tracepointovima
Trace pointovi se kontinuirano dodaju Qt verzijama. Da biste ih koristili, morate sami izgraditi Qt s opcijom configure -trace lttng.
Snimanje događaja
Za stvaranje sesije pozivate naredbu lttng create. Zatim pozivate lttng enable-channel kernel -k kako biste omogućili kanal kernela. Unutar kanala kernela navodite odgovarajuće točke praćenja kao kernel_events i pozivate lttng enable-event kako biste ih omogućili. Na kraju pozivate lttng start kako biste započeli praćenje.
Pozivate lttng stop za zaustavljanje praćenja. Možete koristiti sleep za postavljanje duljine sesije. Nakon zaustavljanja možete pozvati lttng destroy za uništavanje sesije.
Možete pisati i pokretati skripte koje sadrže gore navedene naredbe za pokretanje i zaustavljanje praćenja cijelog staka. Možete koristiti systemd za izvršavanje skripti.
Omogućavanje točaka praćenja
Podaci se bilježe prema točkama praćenja koje omogućite u LTTng sesiji. Obično je korisno omogućiti točke praćenja za prekidač rasporeditelja, syscall i Qt.
Trace točke prebacivanja rasporeditelja
Trace pointovi za promjenu rasporeditelja dostižu se kada se aplikacija izbaci zbog predemptije, na primjer, kada drugi proces dobije priliku za izvršavanje na CPU jezgri. Omogućite trace pointove za promjenu rasporeditelja kako biste zabilježili nit koja se trenutno izvršava i proces kojem pripada, kao i vrijeme kada je proces započeo i zaustavio se.
Trace pointovi syscalla
Trace-pointi syscalla pomažu vam razumjeti zašto se dogodio prekid rasporedivača. Sljedeći su primjeri syscalla koje možete pratiti:
openaticlosepovezuju opisivače datoteka s imenima datotekammapmapira greške stranica na datotekereadiwriteaktiviraju se I/O operacijamananosleep,futexipollobjašnjavaju promjene rasporediteljaioctlkontrolira GPU i zaslon
Konverzija LTTng podataka u CTF
Alat ctf2ctf koristi babeltrace za analizu binarnog Common Trace Format (CTF) i pretvara ga u Chrome Trace Format (CTF). Izvršava sljedeće prilagođene zadatke kako bi snimka bila čitljivija za ljude:
- Mapiranje opisatelja datoteka na nazive datoteka
- Mapiranje grešaka stranica na nazive datoteka
- Označavanje prekida i blok uređaja nazivima
- Konvertirajte podatke iz UTF-16 QString formata u UTF-8 nizove
- Broj stranica memorije dodijeljenih
Za generiranje JSON datoteka koje sadrže podatke o tragu u Chrome Trace formatu, unesite sljedeću naredbu u naredbeni redak:
ctf2ctf -o trace.json path/to/lttng trace/
Vidi također Kako: Analizirati, Analizatori i Analiziranje koda.
Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.