Verwijderd schreef op maandag 03 januari 2005 @ 20:38:
Al die parse time scriptjes zijn wel heel leuk maar pas nuttig als je vergelijkings materiaal hebt.
Kan er een indicatie gegeven worden met een tijd wanneer de parse tijd echt te groot is in bepaalde gevallen?
Wat is/was bijvoorbeeld de parsetijd van dit forum? Is zeker niet meer na te gaan (vroeger kon je dat nog onderaan de pagina zien)?
Ik kan uit ervaring vertellen dat als de klant belt dat de site zo traag is dat het dan te langzaam is
statestieken en gemeten gemiddelde voor zelvde functionaliteit daar gelaten, komt het altijd neer op hoe snel het aanvoelt.
Voor mij voelde de site opzich niet zo heel zwaar aan, de klant had echter een single ISDN en ik kan me wel voorstellen dat de site dan niet echt vrolijk snel was.
daar spits je dan ook je optimalisatie op aan.
b.v. een aantal plaatjes waren dynamisch dit omdat deze "konden" veranderen.
Om deze reden was er toen standaard een no-caching toegepast om te zorgen dat men altijd de correcte info had.
een simpele manier om deze dan te optimaliseren was om die no-caching aan te passen.
dit simpel als voorbeeld ter illustratie dat optimalisatie niet altijd de zelvde weg hoeft te zijn.
Ik heb een stel classes met daarin een zooitje functies. Elke class is een los bestand, daarin wordt vaak weer een andere andere class bestand geinclude.
Er wordt 1 class bestand in de pagina van de applicatie geinclude, maar omdat deze bestand ook weer een include naar andere classes heeft wordt gewoon alles wel ingeclude . En deze hele grote include kost al veel tijd (0,12 seconden, is dit normaal?), en dan heb je nog niet eens de tijd van de uitvoer ervan.
tsja, 0.12 seconden.
klinkt als best veel.
maar als jouw voledige execution time tegen een minuut aan zit (b.v.) dan zou ik de bottlenek toch ergens anders zoeken.
Wat zijn de tips & tricks om dit sneller te maken?
De beste trick is natuurlijk nog altijd make shift je code analyseren om te kijken waar de meeste tijd naartoe gaat.
in loops b.v. die veel aangeroepen worden is het verstandig om single quotes rond strings te zetten, zodat php deze niet door hoeft te kijken op zoek naar variabelen of speciaale string modifiers/chars (\n \t etc...)
ook zorgen dat na klaar te zijn met de dataset uit een query je deze flushed met behulp van **sql_free_results. Vooral wanneer je met grote datasets eruit trekt kan dit wat preformance schelen.
En als je nou echt een botleneck houd, dan heb je of de foute taal gekozen, of je applicatie logica moet verbeterd worden, of je moet er simpelweg genoegen mee nemen dat het daadwerkelijk zo lang duurt.
Ik heb meerdere applicaties geschreven met een executie tijd van meerdere uren.
Maarja, een backup draaien van een server gaat nu eenmaal niet in een miliseconde.
Nog het converteren van plaatjes.
Verder ligt er nu nog een applicatie in skelet vorm met een executie tijd van 24 uur 7 dagen in de week en met een beetje geluk nog 12 maanden per jaar ook.
Het is maar net waar het voor is.
Want nu blijkt wel weer dat het gebruik van classes (OOP) dus wel langzamer is dan wat functies in de pagina direct te doen.
Moet het ook sneller zijn?
Ik heb b.v. van de week een bepaald programma wat eerst "gewoon" (liniear? iteratief, weet niet precies meer hoe het heet) was omgezet naar OOP.
waarbij grote delen van de achterliggende logica veranderd weren, veel nieuwe mogelijkheden geimplementeerd zijn.
En dit is nu al in een fractie van de tijd geschreven, omdat ik in OOP de structuur en logica veel simpeler voor mezelf kon visualiseren.
Minder uren nu, minder uren als het aangepast moet worden.
en die kosten wegen echt wel op tegen de paar procenten preformance van de applicatie zelf.
offtopic:
Over het hele parse tijd verhaal, een simpele reden dat dit in de PHP hoek vaak te pas en te onpas word gebruikt is simpelweg omdat PHP alles zo'n beetje parse errors noemt.
(wat voledig correct is, immers hij vind de fout terwijl hij de code parsed)
echter krijg je hier wel de neiging van om bij alles wat php doet het parsen te noemen.
Zelfs als je eigenlijk dondersgoed zou moeten weten wat parsen wel en niet is, om dat een leraar zijn tijd verknoeit heeft het je in de treuren uit te leggen.
maar om daar nu zo'n ontiegeloze ophef over te maken vind ik ronduit belachelijk.