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í.