Standardní GNU profiler, gprof, je dostupný pro většinu unixových systémů. gprof je součástí GNU toolchainu a byl jedním z prvních open source nástrojů pro profilování kódu. Kombinuje instrumentaci v době kompilace a techniky vzorkování s použitím vzorkovací frekvence 100 Hz. Má tu výhodu, že nevyžaduje podporu jádra.
Chcete-li připravit program pro profilování pomocí gprof, přidejte -pg do příznaků kompilace a propojení, což vloží kód shromažďující informace o stromu volání do preambule funkce. Když program spustíte, vzorky se shromáždí a uloží do vyrovnávací paměti, která se po ukončení programu zapíše do souboru s názvem gmon.out.
pokud při spuštění příkazu gprof narazíte na níže uvedenou chybu:
můžete zkusit nainstalovat balíček binutils, jak je uvedeno níže, podle vaší volby distribuce.
Distribuce | Příkaz |
---|---|
OS X | brew install binutils |
Debian | apt-get install binutils |
Ubuntu | apt-get install binutils |
Alpine | apk add binutils |
Arch Linux | binutils pacman -S |
Kali Linux | apt-get install binutils |
CentOS | yum install binutils |
Fedora | dnf install binutils |
Raspbian | apt-get install binutils |
gprof zobrazí data profilu pro soubor objektu. Tabulka symbolů souboru je porovnána se souborem profilu grafu volání gmon.out (dříve vytvořeným kompilací pomocí gcc -pg). Mnoho voleb gprof používá argument specifikace symbolu nebo sympspec, aby se volba omezila na zadané soubory nebo funkce. Symspec může být název souboru, funkce nebo číslo řádku. Může být také zadán jako název_souboru:funkce nebo název_souboru:číslo řádku pro určení funkce nebo čísla řádku v konkrétním souboru. gprof očekává, že názvy souborů budou obsahovat tečku a funkce nebudou obsahovat tečku.