PHP:n profilointi Xdebugilla
Ottakaa Xdebug-profilointi käyttöön ja analysoikaa callgrind-tulostetta hitaiden funktioiden löytämiseksi.
PHP:n profilointi Xdebugilla on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mikä Xdebug on?
Xdebug on PHP-laajennus, joka tarjoaa virheenkorjaus-, koodikattavuus- ja profilointiominaisuudet. Profilointityökalu tallentaa, kuinka kauan jokainen funktiokutsu kestää ja kuinka monta kertaa sitä kutsutaan.
Xdebugin asentaminen
Asentakaa se PECL:n tai paketinhallinnan avulla.
# Via PECL:
$ pecl install xdebug
# Via apt:
$ apt install php-xdebug
# Verify:
$ php -v | grep XdebugProfiloinnin käyttöönotto
Määrittäkää Xdebug tiedostossa php.ini profiloinnin ottamiseksi käyttöön.
# php.ini
[xdebug]
zend_extension=xdebug.so
xdebug.mode=profile
xdebug.output_dir=/tmp/xdebug
xdebug.profiler_output_name=cachegrind.out.%tTrigger-pohjainen profilointi
Sen sijaan, että profiloisitte jokaisen pyynnön, käyttäkää triggeriä profiloinnin käynnistämiseen tarpeen mukaan.
# php.ini
xdebug.mode=profile
xdebug.start_with_request=trigger
# Trigger via query parameter or cookie:
curl "https://example.com/?XDEBUG_PROFILE=1"Callgrind-tuloste
Xdebug kirjoittaa tiedoston cachegrind.out.*. Tätä muotoa voivat lukea profiloinnin visualisointiohjelmat.
Analysointi KCachegrindilla / QCachegrindilla
Avatkaa callgrind-tiedosto KCachegrindissa (Linux) tai QCachegrindissa (macOS/Windows), jotta näette funktiokutsujen määrän, kokonaisajan, oman ajan ja kutsupuun.
Analysointi WebGrindilla
WebGrind on selaimessa toimiva callgrind-katseluohjelma — sen käyttöönotto on helpompaa kuin työpöytäsovelluksen.
$ docker run -p 8080:80 jokkedk/webgrind -v /tmp/xdebug:/tmpProfilointitulosteen lukeminen
Etsikää funktiot, joilla on suurin "Inclusive Cost" (kokonaisaika kutsutut funktiot mukaan lukien) verrattuna "Self Cost" -arvoon (aika vain funktion rungossa). Oma kustannus paljastaa todellisen pullonkaulan.
Yleisiä löydettyjä pullonkauloja
Tyypillisiä löydöksiä ovat N+1-tietokantakyselyt, tehottomat säännölliset lausekkeet, tarpeettomat API-kutsut, optimoimattomat Eloquent-relaatiot ja raskas näkymien muodostaminen.
Profilointi ja virheenkorjaus
Profilointi mittaa suorituskykyä (aikaa ja kutsujen määriä). Virheenkorjaus, joka on myös Xdebugin ominaisuus, keskeyttää suorituksen pysäytyskohdissa koodin tarkastelua varten. Käyttäkää Xdebugin tiloja erikseen.
Blackfire vaihtoehtona
Blackfire.io on kaupallinen profilointityökalu, jossa on viimeistelty käyttöliittymä, CI-integraatio ja suorituskykyväittämiä. Tiimiympäristöissä sitä suositaan käsittelemättömän Xdebug-profiloinnin sijaan.
Yhteenveto
Ottakaa Xdebugin profilointitila käyttöön tiedostossa php.ini, käynnistäkää pyyntö ja avatkaa callgrind-tiedosto KCachegrindissa tai WebGrindissa. Keskittykää funktioihin, joilla on suurimmat Inclusive Cost- ja Self Cost -arvot, jotta löydätte pullonkaulat.
Pikatarkistus
Mitä "self cost" tarkoittaa profilointiraportissa?
Opi PHP tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 49
- Oppitunnit
- 195
Usein kysytyt kysymykset
Onko oppitunti ”PHP:n profilointi Xdebugilla” ilmainen?
Kyllä – oppitunnin ”PHP:n profilointi Xdebugilla” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”PHP:n profilointi Xdebugilla”?
Ottakaa Xdebug-profilointi käyttöön ja analysoikaa callgrind-tulostetta hitaiden funktioiden löytämiseksi. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”PHP:n profilointi Xdebugilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?
Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- PHP:n profilointi Xdebugilla
- OPcache: tavukoodin välimuisti
- Tietokantakyselyjen optimointi
- Muistinhallinta ja suorituskykyvinkit