Narzędzia jak qcachegrind i kcachegrind wizualizować wyjście profilera Xdebug PHP. Dane wyjściowe profilera są praktycznie logami wszystkich wywołań funkcji PHP z odpowiednim czasem rozpoczęcia, czasem wykonania i hierarchią.
Typowy widok jest pokazany na poniższym rysunku:
Po lewej stronie jest „płaska”. Wymienia wszystkie indywidualne wywołania funkcji od najbardziej czasochłonnych do najmniej czasochłonnych. "Incl." kolumna pokazuje czas zużywany przez funkcję, w tym wywoływane. Kolumna "Self" pokazuje czas spędzony przez funkcję wykluczającą callees. Kolumny "Wywoływane" i "Funkcja" pokazują odpowiednio liczbę wywołań funkcji oraz nazwę (plus obszar nazw) funkcji.
Po prawej stronie dostępne są różne widoki w celu wizualizacji osób dzwoniących i odbiorców. Osoby dzwoniące i osoby wywołujące odpowiadają funkcji wybranej po lewej stronie.
W moim zrzucie ekranu u góry ekranu otwiera się "Mapa Callee". Każdy prostokąt jest wywołaniem funkcji w ramach wybranej funkcji (a mianowicie), a każda reszta wewnątrz jest osobą odbierającą. Rozmiar odpowiada względnemu "Incl". czas.
U dołu widok "Wszystkie odwiedzane" pokazuje wybranych przez użytkownika wybranych funkcji według właściwości, które preferujesz.
Bardziej szczegółowy widok jest pokazany poniżej:
Jest funkcją funkcją bazy laravel posortowane na czas „ja”. Wyraźnie widać, w jaki sposób różne wywołania funkcji są powiązane i która funkcja zajmuje najwięcej czasu: PDOStatement :: execute. Nie jest to niespodzianką, ponieważ jest to funkcja, która łączy się z zewnętrzną bazą danych, odpytuje ją i czeka na wynik.
Powrót do oryginalnego zrzutu ekranu. Mówi ci, że twoja aplikacja poświęciła dużo (dużo czasu) na funkcję PHP session_start
. Jest to pokazane przez 99,8% samo-czas.
Czy znalazłeś przydatną dokumentację dla qCacheGrind, którą możesz udostępnić? –
@KimberlyW Niestety, nie, nigdy tego nie zrobiłem. – DelightedD0D
@KimberlyW Czekałem ponad rok, wygląda na to, że masz szczęście przez 8 dni, Tom po prostu dodał odpowiedź, która określa to całkiem ładnie – DelightedD0D