0Pricing
PHP Academy · Lekcja

Profilowanie PHP za pomocą Xdebug

Włącz profilowanie Xdebug i analizuj dane wyjściowe callgrind, aby znajdować wolne funkcje

Profilowanie PHP za pomocą Xdebug to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Czym jest Xdebug?

Xdebug to rozszerzenie PHP zapewniające funkcje debugowania, analizy pokrycia kodu i profilowania. Profiler rejestruje czas trwania każdego wywołania funkcji oraz liczbę jego wystąpień.

Instalacja Xdebug

Należy zainstalować go za pomocą PECL lub menedżera pakietów.

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

Włączanie profilera

Aby włączyć profilowanie, należy skonfigurować Xdebug w pliku php.ini.

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

Profilowanie wyzwalane żądaniem

Zamiast profilować każde żądanie, należy użyć wyzwalacza, aby uruchamiać profilowanie na żądanie.

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

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

Dane wyjściowe Callgrind

Xdebug zapisuje plik cachegrind.out.*. Ten format jest odczytywany przez narzędzia do wizualizacji profilowania.

Analiza za pomocą KCachegrind / QCachegrind

Należy otworzyć plik callgrind w KCachegrind (Linux) lub QCachegrind (macOS/Windows), aby zobaczyć: liczbę wywołań funkcji, łączny czas, czas własny i drzewo wywołań.

Analiza za pomocą WebGrind

WebGrind to przeglądarkowa przeglądarka plików callgrind — łatwiejsza w konfiguracji niż narzędzie desktopowe.

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

Odczytywanie danych profilera

Należy szukać funkcji o najwyższym „koszcie inkluzywnym” (łącznym czasie wraz z wywoływanymi funkcjami) oraz „koszcie własnym” (czasie spędzonym wyłącznie w treści funkcji). Koszt własny wskazuje rzeczywiste wąskie gardło.

Typowe znalezione wąskie gardła

Typowe problemy to: zapytania do bazy danych typu N+1, nieefektywne wyrażenia regularne, zbędne wywołania API, niezoptymalizowane relacje Eloquent i kosztowne renderowanie widoków.

Profilowanie a debugowanie

Profilowanie mierzy wydajność (czas i liczbę wywołań). Debugowanie, które również jest funkcją Xdebug, wstrzymuje wykonywanie w punktach przerwania na potrzeby analizy kodu. Należy używać oddzielnych trybów Xdebug.

Blackfire jako alternatywa

Blackfire.io to komercyjne narzędzie do profilowania z dopracowanym interfejsem, integracją z CI i asercjami wydajności. W środowiskach zespołowych jest preferowane zamiast surowego profilowania za pomocą Xdebug.

Podsumowanie

Należy włączyć tryb profilera Xdebug w pliku php.ini, wykonać żądanie i otworzyć plik callgrind w KCachegrind lub WebGrind. Aby znaleźć wąskie gardła, należy skupić się na funkcjach o najwyższym koszcie inkluzywnym i własnym.

Szybki test

Co oznacza „koszt własny” w raporcie profilera?

Często zadawane pytania

Czy lekcja „Profilowanie PHP za pomocą Xdebug” jest bezpłatna?

Tak — pełny tekst „Profilowanie PHP za pomocą Xdebug” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Profilowanie PHP za pomocą Xdebug”?

Włącz profilowanie Xdebug i analizuj dane wyjściowe callgrind, aby znajdować wolne funkcje Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Profilowanie PHP za pomocą Xdebug”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Profilowanie PHP za pomocą Xdebug
  2. OPcache: buforowanie kodu bajtowego
  3. Optymalizacja zapytań do bazy danych
  4. Zarządzanie pamięcią i wskazówki dotyczące wydajności
← Powrót do PHP Academy