13.1.18. Profiler kode¶
Window → Show Code Profiler membuka profiler tingkat fungsi untuk firmware yang berjalan di kamera yang terhubung: fungsi C mana yang berjalan, seberapa sering, dan ke mana mikrosecond pergi, dialirkan langsung saat skrip dieksekusi. Ini menjawab pertanyaan yang dimunculkan penghitung FPS -- mengapa pipeline ini lambat -- pada tingkat kode kamera sendiri.
Dukungan profiling dikompilasi ke dalam firmware, tidak selalu ada: kamera harus menjalankan firmware yang dibangun dengan PROFILE_ENABLE=1, dan entri menu tetap dinonaktifkan sebaliknya. Membangun firmware seperti itu adalah bagian dari alur kerja build kustom yang dibahas dalam Membangun firmware.
Profiler memantau skrip yang berjalan: panggilan per fungsi, waktu, dan persentase total waktu, dengan dua penghitung peristiwa hardware di kolom paling kanan dan baris total di bawahnya.¶
Jendela ini adalah tabel fungsi yang dapat diurutkan dengan jumlah panggilan, minimum, maksimum, total, dan rata-rata mikrosecond, rata-rata siklus, dan persentase total waktu, dengan baris total di bawah dan kotak filter untuk menemukan fungsi berdasarkan nama. Nama fungsi berasal dari file ELF firmware -- arahkan field path firmware jendela ke .elf yang dihasilkan oleh build, dan alamat akan diselesaikan menjadi nama.
Dua kontrol tampilan mengorganisir data. Flat mengurutkan setiap fungsi secara independen -- tampilan untuk "apa fungsi tunggal yang paling mahal." Tree menyarangkan callee di bawah pemanggil, menunjukkan bagaimana waktu terurai di sepanjang rantai panggilan. Secara independen, Inclusive membebankan fungsi untuk waktu yang dihabiskan di semua yang dipanggilnya, sementara Exclusive hanya menghitung body fungsi sendiri -- inclusive menemukan subsistem yang mahal, exclusive menemukan loop yang mahal. Reset mengosongkan penghitung, yang merupakan cara Anda mengukur satu tahap pipeline secara terpisah: reset, biarkan berjalan, baca.
Profiler juga dapat menampilkan penghitung peristiwa hardware -- cache miss, branch misprediction, dan peristiwa lain yang dapat dihitung oleh prosesor -- di samping kolom waktu; pilih mereka di jendela yang sama pada firmware yang dibangun dengan dukungan tersebut.
Lihat juga
CLI paket openmv dapat melapisi data profiling yang sama pada aliran langsung dari baris perintah -- lihat CLI openmv.