[php] cachen van php scripts

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
ik zit al een tijdje met de issue dat de pagina's die ik genereer in php mbv grote mysql queries veel performance van de server vergen.

nu heb ik een systeempje uitgeprobeerd dat, zodra de pagina gerenderd is, de url-string van de php pagina (bijv. index.php?pap=1&kaas=2) omzet naar een md5 hash en vervolgens dit als bestandsnaam gebruik om de gegenereerde pagina op te slaan als file op de server. de volgende keer dat deze url wordt opgevraagd wordt bovenaan het script eerst de md5 hash weer berekend en vervolgens gecheckt of de overeenkomstige string al op de server staat (bijv. cache/1ac02f9ef31d28c3a71v2a893e719237). zo ja, dan haalt-ie deze op en dumpt-ie deze naar de output buffer ipv. dat het hele script met queries en alles opnieuw berekent hoeft te worden. dit scheelt best wel in tijd.

echter een aantal vragen:

1. is wat ik doe hier waterdicht? of ben ik heel fout bezig?
2. maakt het niet uit hoe lang de bron string is bij het berekenen naar een md5 hash? aangezien de url strings weleens heel lang kunnen worden door alle get params die meegegeven kunnen worden...
3. is het erg dat ik de hexadecimale md5 waarde als een string toepas?
4. zijn er andere caching systemen te bedenken zonder dat je daarbij aan de server hoeft te komen (i.e. software installeren)?

nb: ik check de datum dat de file is weggeschreven, als deze langer dan bijv. 12 uur geleden is dan de huidige tijd dan wordt de cachefile als verouderd verklaard en wordt het script wel opnieuw gerenderd en direct weggeschreven als cachefile.

groeten, jeroen.

Acties:
  • 0 Henk 'm!

Verwijderd

Kijk eens op deze site http://phpaccelerator.co.uk/

Acties:
  • 0 Henk 'm!

Verwijderd

of natuurlijk www.zend.com als het goed is, want die kan ook php scripts encoden en verkleinen en natuurlijk cachen als ik het goed heb, en anders als je templates gebruik kan je smarty proberen :)

[ Voor 35% gewijzigd door Verwijderd op 01-05-2003 17:47 ]


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
bedankt voor je tip! alleen heeft dit geen effect op mysql queries, en die vreten bij mij veel meer tijd dan de php scripts zelf. en uit hun caching method kan ik niet opmaken of nou de php code gecached wordt of de hele html output. ik denk niet dat de hele html gecached wordt, want anders zou een ongewijzigd php script dat door de accelerator geinterpreteerd wordt als zijnde een gecached script, en dat script zou een select query tonen, de mysql data ook niet geupdate zijn... maar vergeef me als ik het mis heb.

ik zoek eigenlijk een systeem dat bijv. ebay ook gebruikt. daar zie je bij de listing pagina's van producten, die heel vaak opgevraagd worden, dat ze 'slightly out of date' zijn. die worden 1x in de zoveel tijd geupdated en als platte html op de server gezet. dit scheelt veel performance vd server. nou zoiets probeer ik nu ook te doen.

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
volgens mij is het bijna waterdicht. 2 verschillende strings kunnen namelijk voor hetzelfde md5 hash string zorgen. Normaal gesproken zal dit niet gebeuren, en md5 is zo ontworpen dat een kleine afwijking in het origineel voor een grote afwijking in de hash string zorgt. Aangezien jouw urls meestal gelijk zullen zijn zal dit dus wel goed gaan. oja even voor de mensen die hierboven hebben gepost:

de topicstarter wil z'n queries cachen

en je zou natuurlijk ook gewoon de queryresultaten als hash kunnen opslaan....inplaats van de url. en kijk ook even naar dit soort artikelen

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
wow bedankt /dev/null ik keek vroeger vaak op phpbuilder.com tot ik het id kreeg dat er weinig geupdate werd. toch eerst even daar moeten kieken.

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
hehe wel grappig hij gebruikt exact hetzelfde caching truukje als ik. fijn dat ik niet de enige gek ben die zo'n grap bedenkt.

(http://www.phpbuilder.com...0010125.php3?print_mode=1)

[ Voor 25% gewijzigd door js303 op 01-05-2003 18:26 ]


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
wow dat gzippen was ik nog niet op gekomen. heel slim om een script dat 150k aan html genereert dit vervolgens te laten gzippen en dan door browser uit te laten pakken. scheelt enorm. echte aanrader. iemand anders minder goede ervaringen mee??

Acties:
  • 0 Henk 'm!

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 04-09 19:14
Niemand denk ik, aangezien T.net het zelf ook gebruikt :P. Alleen rete oude browsers kunnen niet echt lekker omgaan met gzip encoding dmv http...

zeroxcool.net - curity.eu


Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
ok. bedankt voor jullie aandacht.
Pagina: 1