Na ovoj stranici

Profiliranje izvršavanja funkcija

Pomoću alata Callgrind iz Valgrindovog Tool Suitea možete otkriti probleme povezane s izvršavanjem funkcija. Učitajte datoteke s profilom koje je generirao Callgrind u alat za vizualizaciju profilnih podataka KCachegrind kako biste pregledali rezultate performansi.

Nakon što preuzmete i instalirate Valgrind alate i KCachegrind, možete koristiti Callgrind i KCachegrind s adrese Qt Creator.

Napomena: Možete instalirati i pokrenuti Callgrind i KCachegrind lokalno na Linuxu. Callgrind možete pokrenuti na udaljenom Linux računalu ili uređaju s bilo kojeg računala.

Izradite aplikacije za profiliranje

Callgrind bilježi povijest poziva funkcija koje se izvršavaju tijekom pokretanja aplikacije. Prikuplja broj izvršenih instrukcija, njihovu povezanost s redovima u izvornoj kodu, odnose između pozivatelja i pozvanih funkcija te broj takvih poziva. Također možete koristiti simulaciju predmemorije ili predviđanje grananja za prikupljanje informacija o ponašanju aplikacije tijekom izvođenja.

Budući da se karakteristike tijeka izvršavanja konfiguracija za debug i release build značajno razlikuju, analitički nalazi za jednu konfiguraciju možda neće biti relevantni za drugu. Profiling debug verzije izrade često otkriva da se veći dio vremena troši na kod niske razine, kao što su implementacije spremnika, dok se isti kod ne pojavljuje u profilu release verzije iste aplikacije zbog inlininga i drugih optimizacija koje se tamo obično provode.

Mnogi noviji prevoditelji omogućuju izradu optimizirane aplikacije s prisutnim informacijama za otklanjanje pogrešaka istovremeno. Na primjer, tipične opcije za GCC su: -g -O2. Preporučljivo je koristiti takvu konfiguraciju za profiliranje pomoću Callgrinda.

Prikupljanje podataka

Za analizu aplikacija:

  1. Idite u način rada Projects i odaberite konfiguraciju za release build.
  2. U odabiraču načina rada odaberite Debug > Callgrind.

    Alatna traka prikaza Callgrind

  3. Odaberite Počni za pokretanje aplikacije.
  4. Koristite aplikaciju za analizu.
  5. Odaberite Stani za pregled rezultata analize u prikazu Functions.

Odaberite Pauza kako biste ubrzali izvršavanje programa tijekom profiliranja pauziranjem bilježenja događaja. Događaji se ne broje dok je bilježenje pauzirano.

Odaberite gumb Ponovno učitaj (Reset) za resetiranje svih brojača događaja.

Odaberite Čisto da biste odbacili sve prikupljene podatke.

Odaberite KCachegrind za pregled podataka u KCachegrindu. Qt Creator pokreće KCachegrind i učitava podatke u njega za vizualizaciju.

Pregledajte prikupljene podatke

Rezultati analize prikazuju se u prikazima Callgrind. Možete odvojiti prikaze i premještati ih. Da biste poništili promjene, odaberite Views > Reset to Default Layout.

Odaberite Views za prikaz i sakrivanje prikaza i naslova. Prikaz Visualization skriven je prema zadanim postavkama. Odaberite Ponovno za osvježavanje podataka prikazanih u njemu kada je prikazan.

Kao alternativu prikupljanju podataka, možete odabrati Otvoreno za učitavanje vanjske datoteke dnevnika u prikaze Callgrind.

Prikazi Callgrinda

Unesite string u polje Filter kako biste filtrirali rezultate.

Pomaknite pokazivač na funkciju u prikazu Functions za više informacija o njoj.

Dvostruko kliknite na funkciju da biste vidjeli informacije o funkcijama koje je pozivaju u prikazu Callers i o funkcijama koje se pozivaju u prikazu Callees.

Odaberite gumb Prethodno (Previous) i gumb Sljedeće (Next) za kretanje između funkcija u prikazu Callee.

Za postavljanje formata troškova odaberite $. Možete pregledavati apsolutne ili relativne troškove, kao i relativne troškove u odnosu na roditelja. Odaberite Filtriraj za pregled samo profiliranih informacija koje potječu iz projekta.

Za ispravno rukovanje rekurzivnim ili kružnim pozivima funkcija omogućite otkrivanje ciklusa odabirom O.

Za uklanjanje popisa parametara predloška pri prikazu naziva funkcija odaberite <>.

Vidi također Otkrivanje curenja memorije pomoću Memchecka, Pokretanje Valgrind alata na vanjskim aplikacijama, Definiranje Valgrind postavki za projekt, Valgrind Callgrind i Valgrind Memcheck.

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.