PHP Academy · Lektion

Profilera PHP med Xdebug

Aktivera profilering med Xdebug och analysera callgrind-utdata för att hitta långsamma funktioner.

Lektion 1 av 413 steg

Profilera PHP med Xdebug är en gratis lektion i PHP Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för PHP Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad är Xdebug?

Xdebug är ett PHP-tillägg som tillhandahåller funktioner för felsökning, kodtäckning och profilering. Profileraren registrerar hur lång tid varje funktionsanrop tar och hur många gånger det anropas.

Installera Xdebug

Installera via PECL eller en pakethanterare.

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

Aktivera profileraren

Konfigurera Xdebug i php.ini för att aktivera profilering.

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

Triggerbaserad profilering

I stället för att profilera varje förfrågan använder du en trigger för att profilera vid 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 namnet cachegrind.out.*. Formatet kan läsas av verktyg för profilvisualisering.

Analysera med KCachegrind/QCachegrind

Öppna callgrind-filen i KCachegrind (Linux) eller QCachegrind (macOS/Windows) för att se antal funktionsanrop, total tid, egen tid och anropsträdet.

Analysera med WebGrind

WebGrind är en webbläsarbaserad visare för callgrind – enklare att konfigurera än ett skrivbordsverktyg.

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

Läsa profilerarens utdata

Leta efter funktioner med högst "Inclusive Cost" (total tid inklusive anropade funktioner) respektive "Self Cost" (tid i själva funktionskroppen). Egen kostnad visar den faktiska flaskhalsen.

Vanliga flaskhalsar

Typiska fynd är N+1-databasfrågor, ineffektiva reguljära uttryck, överflödiga API-anrop, ooptimerade Eloquent-relationer och kostsam rendering av vyer.

Profilering jämfört med felsökning

Profilering mäter prestanda (tid och antal anrop). Felsökning (som också är en Xdebug-funktion) pausar körningen vid brytpunkter för kodinspektion. Använd separata Xdebug-lägen.

Blackfire som alternativ

Blackfire.io är ett kommersiellt profileringsverktyg med ett välutformat användargränssnitt, CI-integrering och prestandaassertioner. Det föredras i teammiljöer framför rå Xdebug-profilering.

Sammanfattning

Aktivera Xdebugs profileringsläge i php.ini, utlös en förfrågan och öppna callgrind-filen i KCachegrind eller WebGrind. Fokusera på funktioner med högst inkluderande och egen kostnad för att hitta flaskhalsar.

Snabbtest

Vad betyder "self cost" i en profileringsrapport?

Gratis att börja

Lär dig PHP med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
49
Lektioner
195

Vanliga frågor

Är lektionen ”Profilera PHP med Xdebug” gratis?

Ja – hela texten till ”Profilera PHP med Xdebug” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i PHP Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i PHP Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Profilera PHP med Xdebug”?

Aktivera profilering med Xdebug och analysera callgrind-utdata för att hitta långsamma funktioner. Ni övar på PHP Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig PHP Academy?

Du behöver inga förkunskaper. Utbildningen i PHP Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Profilera PHP med Xdebug”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här PHP Academy-lektionen?

Ja. Varje PHP Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Profilera PHP med Xdebug
  2. OPcache: bytecode-cachning
  3. Optimera databasfrågor
  4. Minneshantering och prestandatips
← Tillbaka till PHP Academy