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 profila koje je generirao Callgrind u alat za vizualizaciju profila 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 izvornom 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 izvršavanja.

Budući da se karakteristike izvršavanja konfiguracija za debug i release build značajno razlikuju, analitički nalazi za jednu konfiguraciju izrade možda neće biti relevantni za drugu. Profiliranje debug builda č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 builda iste aplikacije zbog inlininga i drugih optimizacija koje se tamo obično provode.

Mnogi noviji kompajleri 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 release builda.
  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 Ponovno učitaj 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 skrivanje prikaza i naslova. Prikaz Visualization je prema zadanim postavkama skriven. 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.

Pregledi Callgrinda

Unesite niz 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 prikaz Prethodni ili Sljedeće 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 prikaz samo profiliranih informacija koje potječu iz projekta.

Za pravilno 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, Profiliranje izvršavanja funkcija, Pokretanje Valgrind alata na vanjskim aplikacijama, Navođenje 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.