13.1.18. Kod profilleyici

Window → Show Code Profiler, bağlı kamerada çalışan aygıt yazılımı (firmware) için işlev düzeyinde bir profilleyici açar: hangi C işlevlerinin çalıştığı, ne sıklıkta çalıştığı ve mikrosaniyelerin nereye gittiği, bir betik yürütülürken canlı olarak akıtılır. FPS sayacının ortaya koyduğu soruyu yanıtlar – bu boru hattı neden yavaş – kameranın kendi kodu düzeyinde.

Profilleme desteği aygıt yazılımına (firmware) derlenir, her zaman mevcut değildir: kamera, PROFILE_ENABLE=1 ile derlenmiş bir aygıt yazılımı (firmware) çalıştırıyor olmalıdır, aksi takdirde menü girdisi devre dışı kalır. Böyle bir aygıt yazılımı oluşturmak, Aygıt yazılımını derleme belgesinde ele alınan özel derleme iş akışının bir parçasıdır.

Code Profiler penceresi: çağrı sayıları, zamanlama sütunları, yüzdeler ve iki donanım olay sayacı sütunuyla doldurulmuş işlev tablosu; üstte Flat/Tree ve Inclusive/Exclusive denetimleri ve altta toplamlar satırı

Profilleyici bir betiğin çalışmasını izlerken: işlev başına çağrılar, zamanlama ve toplam süre yüzdesi; en sağdaki sütunlarda iki donanım olay sayacı ve altta toplamlar satırı.

Pencere, işlevlerin çağrı sayıları, en düşük, en yüksek, toplam ve ortalama mikrosaniyeleri, ortalama çevrimleri ve toplam süre yüzdesiyle birlikte sıralanabilir bir tablosudur; altta bir toplamlar satırı ve işlevleri ada göre bulmak için bir filtre kutusu bulunur. İşlev adları aygıt yazılımının (firmware) ELF dosyasından gelir – pencerenin aygıt yazılımı yolu alanını derlemenin ürettiği .elf dosyasına yönlendirin, böylece adresler adlara çözümlenir.

İki görünüm denetimi verileri düzenler. Flat her işlevi bağımsız olarak sıralar – “tek başına en pahalı işlev hangisi” için olan görünüm. Tree çağrılanları çağıranların altına yuvalar ve sürenin çağrı zinciri boyunca nasıl ayrıştığını gösterir. Bundan bağımsız olarak, Inclusive bir işlevi çağırdığı her şeyde harcanan süre için ücretlendirirken, Exclusive yalnızca işlevin kendi gövdesini sayar – inclusive pahalı alt sistemi bulur, exclusive pahalı döngüyü bulur. Reset sayaçları sıfırlar; bir boru hattının bir aşamasını yalıtılmış olarak böyle ölçersiniz: sıfırlayın, çalışmasına izin verin, okuyun.

Profilleyici donanım olay sayaçlarını da görüntüleyebilir – önbellek kaçırmaları, dal yanlış tahminleri ve işlemcinin sayabileceği diğer olaylar – zamanlama sütunlarının yanında; desteğin derlendiği aygıt yazılımında (firmware) bunları aynı pencerede seçin.

Ayrıca bakınız

openmv paketinin CLI’si, aynı profilleme verilerini komut satırından canlı bir akışın üzerine bindirebilir – bkz. openmv CLI’ı.