13.1.18. Profiler koda

Window → Show Code Profiler otvara profiler na razini funkcija za ugrađeni program (firmware) koji se izvodi na povezanoj kameri: koje su se C funkcije izvodile, koliko često i gdje su otišle mikrosekunde, prikazano uživo dok se skripta izvršava. Odgovara na pitanje koje postavlja brojač FPS-a – zašto je ovaj cjevovod spor – na razini vlastitog koda kamere.

Podrška za profiliranje ugrađena je u firmware i nije uvijek prisutna: kamera mora pokretati firmware izgrađen s PROFILE_ENABLE=1, inače stavka izbornika ostaje onemogućena. Izgradnja takvog firmwarea dio je radnog tijeka prilagođene izgradnje opisanog u Izgradnja ugrađenog programa (firmware).

Prozor Code Profiler: tablica funkcija popunjena brojem poziva, stupcima za vremena, postocima i dvama stupcima brojača hardverskih događaja, s kontrolama Flat/Tree i Inclusive/Exclusive na vrhu te retkom s ukupnim zbrojevima na dnu

Profiler promatra izvođenje skripte: pozivi po funkciji, vremena i postotak ukupnog vremena, s dva brojača hardverskih događaja u krajnjim desnim stupcima i retkom s ukupnim zbrojevima ispod.

Prozor je tablica funkcija koja se može sortirati, s njihovim brojem poziva, minimalnim, maksimalnim, ukupnim i prosječnim mikrosekundama, prosječnim ciklusima i postotkom ukupnog vremena, uz redak s ukupnim zbrojevima ispod i polje filtra za pronalaženje funkcija po imenu. Imena funkcija dolaze iz ELF datoteke firmwarea – usmjerite polje za putanju firmwarea u prozoru na .elf datoteku koju je proizvela izgradnja, i adrese će se razriješiti u imena.

Dvije kontrole prikaza organiziraju podatke. Flat rangira svaku funkciju neovisno – prikaz za „koja je pojedinačno najskuplja funkcija”. Tree ugnježđuje pozvane funkcije pod pozivatelje, pokazujući kako se vrijeme raščlanjuje niz lanac poziva. Neovisno o tome, Inclusive funkciji pripisuje vrijeme provedeno u svemu što je pozvala, dok Exclusive broji samo tijelo same funkcije – inkluzivni pristup pronalazi skupi podsustav, ekskluzivni pronalazi skupu petlju. Reset poništava brojače, što je način na koji izolirano mjerite jednu fazu cjevovoda: resetirajte, pustite da se izvede, očitajte.

Profiler može uz stupce za vremena prikazati i brojače hardverskih događaja – promašaje predmemorije, pogrešne predikcije grananja i druge događaje koje procesor može brojati; odaberite ih u istom prozoru na firmwareu izgrađenom s tom podrškom.

Više informacija

CLI paketa openmv može iste podatke profiliranja preklopiti preko toka uživo iz naredbenog retka – pogledajte openmv CLI.