13.1.18. Profiler kódu

Window → Show Code Profiler otevírá profiler na úrovni funkcí pro firmware běžící na připojené kameře: které C funkce běžely, jak často a kam šly mikrosekundy, streamováno živě během spouštění skriptu. Odpovídá na otázku, kterou vyvolává počítadlo FPS – proč je tato pipeline pomalá – na úrovni vlastního kódu kamery.

Podpora profilování je zkompilována do firmwaru, není vždy přítomna: kamera musí běžet s firmwarem sestaveným s PROFILE_ENABLE=1, jinak položka nabídky zůstává neaktivní. Sestavení takového firmwaru je součástí postupu vlastního sestavení, který popisuje Sestavení firmwaru.

Okno Code Profiler: tabulka funkcí naplněná počty volání, sloupci s časováním, procenty a dvěma sloupci hardwarových počítadel událostí, s ovládacími prvky Flat/Tree a Inclusive/Exclusive nahoře a řádkem souhrnů dole

Profiler sledující běh skriptu: volání jednotlivých funkcí, časování a procento celkového času, se dvěma hardwarovými počítadly událostí v krajních pravých sloupcích a řádkem souhrnů pod nimi.

Okno je tříditelná tabulka funkcí s jejich počty volání, minimálním, maximálním, celkovým a průměrným počtem mikrosekund, průměrným počtem cyklů a procentem celkového času, s řádkem souhrnů pod ní a polem filtru pro nalezení funkcí podle jména. Názvy funkcí pocházejí z ELF souboru firmwaru – nasměrujte pole cesty k firmwaru v okně na .elf vytvořený sestavením a adresy se přeloží na názvy.

Data organizují dva ovládací prvky zobrazení. Flat řadí každou funkci nezávisle – pohled pro „jaká je jediná nejnákladnější funkce.“ Tree vnořuje volané funkce pod volající a ukazuje, jak se čas rozkládá dolů po řetězci volání. Nezávisle na tom Inclusive připisuje funkci čas strávený ve všem, co zavolala, zatímco Exclusive počítá pouze tělo samotné funkce – inclusive nachází nákladný subsystém, exclusive nachází nákladnou smyčku. Reset vynuluje počítadla, což je způsob, jak izolovaně změřit jednu fázi pipeline: resetovat, nechat běžet, přečíst.

Profiler může vedle sloupců s časováním zobrazovat také hardwarová počítadla událostí – výpadky cache, chybné predikce větvení a další události, které procesor umí počítat; vyberte je v témže okně na firmwaru sestaveném s touto podporou.

Viz také

CLI balíčku openmv umí stejná profilovací data překrýt na živý stream z příkazové řádky – viz Nástroj příkazové řádky openmv.