Het updaten van fopen mode
Ik ben een caching class aan het schrijven en voer "fopen('file', 'r')" uit om de eerste lijn uit te lezen van het bestand omdat daar de tijd in staat dat het gebruikt mag worden.
Dit doe ik in read mode want ik gebruik filemtime om de tijd te berekenen.
Als de cache verlopen is, zal ik het bestand geupdate moeten worden, maar eigenlijk zoek ik een functie waarmee ik de mode van de huidige file pointer kan updaten naar 'w' of zoiets. Waarom?
- Ik wil overhead besparen en zo min mogelijk functies aanroepen.
- Ik weet niet of het overschrijven van de pointer met een nieuwe fopen problemen kan veroorzaken (memory leaks, file data loss, etc..)
- Ik niet durf te zeggen wat er gaat gebeuren als meerdere gebruikers precies op hetzelfde moment de cache wil gaan update omdat deze verlopen is.
Dus misschien heeft iemand hier een ideetje? En info over de werking van dit? Anders zou ik het ietsjes anders moeten schrijven.
Het is namelijk ook een backup voor als de database weg valt, zodat de pagina nog wel kan werken. (aka configuratie cache, template cache, etc)
Gewijzigd op 08/08/2015 17:16:20 door Johan K
php.net).
Die overhead zou ik me niet druk om maken. Allemaal lariekoek en gezever. Een goed en degelijk script is belangrijk.
Backup voor als de database wegvalt? Waarom zou die wegvallen? Waarom maak je niet gewoon regelmatig (cronjob) een backup van de database?
Dan moet het bestand gewoon openen met de r+ mode (zie Die overhead zou ik me niet druk om maken. Allemaal lariekoek en gezever. Een goed en degelijk script is belangrijk.
Backup voor als de database wegvalt? Waarom zou die wegvallen? Waarom maak je niet gewoon regelmatig (cronjob) een backup van de database?
Waarom de database weg zou kunnen vallen? Alles kan gebeuren, hoewel de kans piep klein is natuurlijk maar wel eens meegemaakt dat hij eruit ligt door overbelasting.
Hoewel mijn query's efficiënter konden was het CMS er niet op gemaakt, dus daarom maar een rewrite en wil dingen zo geoptimaliseerd mogelijk maken. Er is 1 website die eens per jaar voor een korte periode pieken haalt van 100.000 bezoekers per dag.
1 functie hier en daar zal geen probleem worden, maar deze cashing ligt in de wortels van het CMS systeem, elke class die er gebruik van gaat maken roept hem 1 keer aan.
Stel, 10 classes maken er gebruik van is dat (8-13 functie calls) * 10 per page render. Doe dat eens op 1 van de hoogeste pieken en reken dan eens je overhead uit.
disk-cache). Je database inrichting is echter wel essentieel. Caching (in PHP) kan in complexe systemen zeker helpen maar dan moet je denken aan bijvoorbeeld template engine's en form-builders die stukken van de pagina in een cache bestand opslaan zodat deze niet iedere aanroep gerenderd hoeven te worden. Het SCHRIJVEN van de cache maakt het systeem enkel trager en niet sneller.
Als je het bestand bewerkt zal de modification time vanzelf aanpassen.
Johan een functie is gewoon een stukje code van je programma. Zonder code geen programma. Ook de includes in PHP gaan in een goede webserver zo snel als het licht (dankzij een fikse Als je het bestand bewerkt zal de modification time vanzelf aanpassen.
Gewijzigd op 08/08/2015 20:45:20 door Frank Nietbelangrijk