Profiler

Předpokládám, že víte co je profiler, ale pro pořádek uvedu: Profiler nástroj (v případě PHP Jet integrovaný subsystém), který umožňuje analyzovat běh aplikace a zjišťovat jak dlouho se která část aplikace provádí, kolik zabírá paměti, kolik a jakých SQL dotazů provádí a také jaká funkce (resp. třída a metoda) jak často volá.

Pro online aplikaci, zejména pokud se jedná o něco exponovaného, například e-shop, informační systém, sociální síť, velký portál a podobně, jsou informace o běhu aplikace zásadní - spolu s bezpečností je to vlastně naprosto klíčová věc (funkčnost a použitelnost beru jako samozřejmost). A z toho důvodu je profiler v PHP Jet přímo integrován. A rovnou uvedu, že tento integrovaný profiler může (ale nemusí) spolupracovat s XHProf.

Z definice vyplývá co má profiler umět, ale zrekapitulujme si co umí ten integrovaný:

  • Umí rozdělit aplikaci do bloků - tedy je možné analyzovat aplikaci po částech a lépe tak hledat a řešit problémy. Běhové bloky si můžete sami definovat, ale při plném použití MVC to systém dělá do značné míry automaticky.
  • Prozradí vám jak dlouho aplikace běžela (jak dlouho se zpracovával požadavek), kolik aplikace spotřebovala paměti, jaké provedla SQL dotazy a kolik to stálo času. Ale především toto všechno ukáže nejen celkově, ale i po blocích - jak již bylo uvedeno. Pak se snadněji pátrá co kde může drhnout.
  • Pokud si nainstalujete XHProf, tak vám Jet Profiler ukáže krásný graf volání, ze kterého je patrné co (jaká funkce / metoda) se volá nejčastěji a kde tedy může být úzké hrdlo aplikace

Dále se prosím podívejte jak můžete profiler zapnout a ovlivnit jeho chování. Pak si podrobně vysvětlíme výstup. A v neposlední řadě si ukážeme jak profiler více využít a tvořit si vlastní bloky.

Ale pokud chcete, tak nejprve malá ochtnávka:


Toto je proužek, který se zobrazí na dolním okraji stránek, pokud je Profiler aktivní (mimochodem i ten si můžete upravit jak třeba)


Toto je část plného výstupu profileru. Několik běhových bloků tohoto webu, jehož obsah právě čtete (bez zapnuté cache).


A pokud máte XHProf, pak si můžete snadno zobrazit takovýto přehled volání.

Předchozí kapitola
Jet\Debug_ErrorHandler_Handler
Další kapitola
Inicializace, nastavení profileru a mikroaplikace _profiler