Het updaten van fopen mode

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan K

Johan K

08/08/2015 17:12:29
Quote Anchor link
Een hele stomme vraag eigenlijk, maar ik kan het nergens vinden.

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 hulp

PHP hulp

20/04/2024 13:43:38
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/08/2015 18:52:12
Quote Anchor link
Dan moet het bestand gewoon openen met de r+ mode (zie 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?
 
Johan K

Johan K

08/08/2015 19:53:31
Quote Anchor link
r+ zorgt dan niet dat de filemtime word geupdate? In de tussentijd heb ik het al ietsjes anders geschreven maar het volgende waar ik aan ga werken is het log systeem dus dan is dat ook wel handig om te weten.

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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/08/2015 20:35:25
Quote Anchor link
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 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.
Gewijzigd op 08/08/2015 20:45:20 door Frank Nietbelangrijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.