Profiler
Met deze klasse (nouja, klasse, hij is nog static, wat in dit geval betekend dat je maar 1 instantie tegelijk kan draaien) kan je per regel van je code de tijd opnemen die de PHP parser erover doet, en hoe vaak de PHP parser eroverheen leest. De uitvoer kan ik niet echt verklaren omdat ik de interne werking van de PHP parser niet ken.
Deze klasse is vooral handig om binnen grote bestanden van bijvoorbeeld een CMS de bottlenecks te vinden. Let niet op de tijden zelf, maar op de verschillen in tijd aangezien het profilen zelf ook nog aardig wat tijd in beslag neemt.
De te profilen code zet je binnen een declare-lus. Voordat je die lus start roep je eerst Profiler::instantiate() aan zodat register_tick_function() aangeroepen wordt. Achteraf, dus na de lus roep je dan weer Profiler::printReport() aan om de uitvoer te (ver)krijgen.
Deze klasse maakt gebruik van WebFX charts om een mooi beeld te genereren. Uiteraard kan je dat allemaal aanpassen naar tekst of een plaatje, wat je wilt. Maar wil je dit voorbeeld letterlijk overnemen, dan zal je dit zip-bestand moeten hebben en de nodige code opnemen alvorens er een grafiek verschijnt. Je kan ook even de bron vanmijn voorbeeld erbij pakken.
(Het zou het mooist zijn als er aparte klassen waren voor de uitvoer, maar aangezien het voor mij maar een gewoon quick & dirty hulpmiddeltje is hechte ik daar niet zoveel belang aan.)
Het beste resultaat krijg je met SQL-queries, XML, veel preg_* enzovoord aangezien die veel tijd innemen en die dus ook als eerste moeten worden nagelopen bij het optimaliseren van de code.
Let op: Een declare-lus kan niet meerdere bestanden omvatten. Includes worden dus niet geprofiled, of in ieder geval, ik heb hem nog niet zover gekregen.
Voorbeeld: http://phphulp.ikhoefgeen.nl/profiler/Profiler.php
Gesponsorde koppelingen
PHP script bestanden
Er zijn 5 reacties op 'Profiler'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu