Profilere PHP med Xdebug
Aktiver profilering med Xdebug og analyser callgrind-utdata for å finne trege funksjoner.
Profilere PHP med Xdebug er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva er Xdebug?
Xdebug er en PHP-utvidelse som tilbyr feilsøking, kodedekning og profilering. Profileringsverktøyet registrerer hvor lang tid hvert funksjonskall tar, og hvor mange ganger det blir kalt.
Installere Xdebug
Installer via PECL eller en pakkebehandler.
# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep XdebugAktivere profileringsverktøyet
Konfigurer Xdebug i php.ini for å aktivere profilering.
# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%tUtløserbasert profilering
I stedet for å profilere hver forespørsel kan du bruke en utløser for å profilere ved 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-utdata
Xdebug skriver en fil med navnet cachegrind.out.*. Dette formatet kan leses av visualiseringsverktøy for profilering.
Analysere med KCachegrind / QCachegrind
Åpne callgrind-filen i KCachegrind (Linux) eller QCachegrind (macOS/Windows) for å se: antall funksjonskall, total tid, egen tid og kalltreet.
Analysere med WebGrind
WebGrind er en nettleserbasert callgrind-visning — enklere å sette opp enn et skrivebordsverktøy.
$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmpLese profileringsutdata
Se etter funksjoner med høyest «Inclusive Cost» (total tid inkludert kalte funksjoner) sammenlignet med «Self Cost» (tid i selve funksjonskroppen). Egenkostnaden viser den faktiske flaskehalsen.
Vanlige flaskehalser
Typiske funn er N+1-databasespørringer, ineffektive regulære uttrykk, overflødige API-kall, ikke-optimaliserte Eloquent-relasjoner og kostbar visningsgjengivelse.
Profilering kontra feilsøking
Profilering måler ytelse (tid og antall kall). Feilsøking (som også er en Xdebug-funksjon) setter kjøringen på pause ved stoppunkter for kodeinspeksjon. Bruk separate Xdebug-moduser.
Blackfire som alternativ
Blackfire.io er et kommersielt profileringsverktøy med et gjennomarbeidet brukergrensesnitt, CI-integrasjon og ytelsespåstander. Det foretrekkes i teammiljøer fremfor rå Xdebug-profilering.
Sammendrag
Aktiver Xdebug-profileringsmodus i php.ini, utløs en forespørsel og åpne callgrind-filen i KCachegrind eller WebGrind. Fokuser på funksjonene med høyest inkluderende kostnad og egenkostnad for å finne flaskehalser.
Rask sjekk
Hva betyr «self cost» i en profileringsrapport?
Lær deg PHP med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 49
- Leksjoner
- 195
Ofte stilte spørsmål
Er leksjonen «Profilere PHP med Xdebug» gratis?
Ja – hele teksten i «Profilere PHP med Xdebug» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Profilere PHP med Xdebug»?
Aktiver profilering med Xdebug og analyser callgrind-utdata for å finne trege funksjoner. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med PHP Academy?
Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Profilere PHP med Xdebug»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?
Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Profilere PHP med Xdebug
- OPcache: Bytekodebufring
- Optimalisere databasespørringer
- Minnehåndtering og ytelsestips