PHP Academy · Lektion

Profilering af PHP med Xdebug

Aktivér Xdebug-profilering, og analysér callgrind-output for at finde langsomme funktioner.

Lektion 1 af 413 trin

Profilering af PHP med Xdebug er en gratis PHP Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i PHP Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad er Xdebug?

Xdebug er en PHP-udvidelse, der tilbyder funktioner til fejlfinding, kodedækning og profilering. Profileringsværktøjet registrerer, hvor lang tid hvert funktionskald tager, og hvor mange gange det kaldes.

Installation af Xdebug

Installer via PECL eller en pakkehåndtering.

# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep Xdebug

Aktivering af profileringsværktøjet

Konfigurer Xdebug i php.ini for at aktivere profilering.

# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%t

Udløserbaseret profilering

I stedet for at profilere hver forespørgsel kan du bruge en udløser til at profilere efter behov.

# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger

# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"

Callgrind-output

Xdebug skriver en cachegrind.out.*-fil. Dette format læses af visualiseringsværktøjer til profilering.

Analyse med KCachegrind / QCachegrind

Åbn callgrind-filen i KCachegrind (Linux) eller QCachegrind (macOS/Windows) for at se: antal funktionskald, samlet tid, egen tid og kaldetræet.

Analyse med WebGrind

WebGrind er en browserbaseret callgrind-fremviser — nemmere at sætte op end et skrivebordsværktøj.

$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmp

Læsning af profileringsoutput

Se efter funktioner med den højeste "inkluderede omkostning" (samlet tid inklusive kaldte funktioner) sammenlignet med "egen omkostning" (kun tiden i funktionens krop). Den egen omkostning afslører den faktiske flaskehals.

Almindelige fundne flaskehalse

Typiske fund er N+1-databaseforespørgsler, ineffektive regulære udtryk, overflødige API-kald, Eloquent-relationer uden optimering og dyr visningsgenerering.

Profilering sammenlignet med fejlfinding

Profilering måler ydeevne (tid og antal kald). Fejlfinding (også en Xdebug-funktion) sætter udførelsen på pause ved brudpunkter, så du kan inspicere koden. Brug separate Xdebug-tilstande.

Blackfire som alternativ

Blackfire.io er et kommercielt profileringsværktøj med en gennemarbejdet brugerflade, CI-integration og ydeevnepåstande. Det foretrækkes i teammiljøer frem for rå Xdebug-profilering.

Opsummering

Aktiver Xdebugs profileringstilstand i php.ini, udløs en forespørgsel, og åbn callgrind-filen i KCachegrind eller WebGrind. Fokuser på funktioner med den højeste inkluderede og egen omkostning for at finde flaskehalse.

Hurtigt tjek

Hvad betyder "egen omkostning" i en profileringsrapport?

Gratis at komme i gang

Lær PHP med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
49
Lektioner
195

Ofte stillede spørgsmål

Er lektionen “Profilering af PHP med Xdebug” gratis?

Ja — hele teksten til “Profilering af PHP med Xdebug” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af PHP Academy-kurset, skal du opgradere til CoddyKit PRO. PHP Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Profilering af PHP med Xdebug”?

Aktivér Xdebug-profilering, og analysér callgrind-output for at finde langsomme funktioner. Du øver dig i PHP Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på PHP Academy?

Der kræves ingen tidligere erfaring. PHP Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Profilering af PHP med Xdebug”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne PHP Academy-lektion?

Ja. Alle PHP Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Profilering af PHP med Xdebug
  2. OPcache: Bytecode-caching
  3. Optimering af databaseforespørgsler
  4. Hukommelsesstyring og tips til ydeevne
← Tilbage til PHP Academy