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 JavaScripta pa sve do C++-a i do prostora kernela. To vam omogućuje mjerenje performansi aplikacije i provjeru je li aplikacija ograničena na 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. Ono ukazuje na to 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 trivijalnog vezanja traje toliko dugo. To može biti uzrokovano izvršavanjem C++ koda ili sporim disk I/O-om.
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 pregledavanju datoteka praćenja većih od 100 MB, koje je teško pregledati pomoću ugrađenog preglednika zapisa praćenja (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, a koji su pretvoreni u CTF. Međutim, neke od naprednijih vrsta događaja koje se koriste, na primjer, u tragovima 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)
- Metapodatkovni događaji (naziv procesa i niti)
Otvaranje JSON datoteka
Za otvaranje JSON datoteka za pregled odaberite Analyze > Chrome Trace Format Viewer > Load JSON File.
Visualizacija događaja
Prikaz Timeline prikazuje grafički prikaz događaja sljedbe i sažeti prikaz svih zabilježenih događaja.

Svaka kategorija u vremenskoj crti opisuje nit u aplikaciji. Pomaknite 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).
Jump to Previous Event Jump to Next Event Okvir (10) sažima razdoblje tijekom kojeg su prikupljeni podaci. Povucite raspon zumiranja (8) ili kliknite na okvir kako biste se pomaknuli unutar njega. Za premještanje između događaja odaberite gumbe za pomicanje naprijed i natrag (1).
Odaberite gumb Show Zoom Slider (2) za otvaranje klizača koji možete koristiti za postavljanje razine zumiranja. Također možete povlačiti ručke za zumiranje (9). Za resetiranje zadane razine zumiranja desnom tipkom miša kliknite na vremensku crtu kako biste otvorili kontekstni 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 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 prikazuje broj uzoraka u kojima se svaka funkcija na vremenskoj crti nalazila, ukupno i kada je bila na vrhu hrpe (nazvano 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šavanje.
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 jezgre
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-a
Nakon što izgradite kernel i postavite ga na svoj uređaj, morat ćete instalirati sljedeće LTTng pakete na svoj uređaj:
lttng-toolsza kontrolu sesije praćenjalttng-modulesza kernel trace točkelttng-ustza trace točke u korisničkom prostoru
U Yocto-u samo trebate omogućiti EXTRA_IMAGE_FEATURES += "tools profile".
Izrada Qt-a s točkama praćenja
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 trajanja 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 prekidatelje rasporeditelja, syscall i Qt.
Trace pointovi za prekid 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 pointovi 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 datotekereadiwritepokreću se I/O operacijamananosleep,futexipollobjašnjavaju promjene rasporedivačaioctlkontrolira 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 Analiza 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.