Kom ihåg mig?
Home Menu

Menu


Cache-filer med PHP

 
Ämnesverktyg Visningsalternativ
Oläst 2010-12-12, 13:13 #1
NeoTech NeoTech är inte uppkopplad
Medlem
 
Reg.datum: Sep 2006
Inlägg: 90
NeoTech NeoTech är inte uppkopplad
Medlem
 
Reg.datum: Sep 2006
Inlägg: 90
Första man ska fråga sig, varför cachar man?
Är det för o bespara I/O tid i databasen? Eller är det för o slippa repetera onödiga loopar?
En sak e väl säker, man cachar statiskt innehåll inte dynamiskt.

Om man e ute efter o bespara I/O tid i Db'n så e väl steg 1, att skriva smartare SQL kod, steg2 är o titta på det statiska datat, vad kan dumpas till filer. Disk I/O e som regel snabbare än SQL I/O vid stora överföringar. - kör man mysql ska man komma ihåg att MySQL belastar servern i dubbel benämning då de inte är en riktig Databas i stil med DB2 standardiseringen som har sina egna filsystem.

Ett sätt o komma runt onödiga CPU belastningar av loopar t.ex är att bryta ner template motorn att hantera ett .NET liknande tänk vad gäller controllers / helpers och kod separerade view filer. Ett bra modulärt ramverk kan ta bort mycket av dom onödiga turerna i en while/foreach loop. För vi ska minnas i webspråk så är det looparna som är CPU tids dödarna.

Om man spolar tillbaka dock lite, att lägga sin affärslogik i databaslagret är ofta en smart lösning, att jobba med procedures, triggers och functions i T-SQL - besparar ofta webbservern mkt processenade, då Databasen alltid är absolut bäst på att hantera stora mängder string data. Samt komplexa mattematiska beräkningar. Att låta databasen serva logik lagret (php) med färdig stringdata kan även det skapa stora vinster i prestanda vad gäller att serva upp statisk information.

Behöver man bara cacha för att sidorna inte uppdateras ofta, då är det bästa troligen o dumpa till html filer och låta filsystemet göra det de är bäst på - serva filer.

Att cacha kan göra mycket fördelar för hårt trafikerade siter, men man ska komma ihåg det finns många sätt o cacha på, dom ger olika fördelar på, och det finns inget som säger att man inte får kombinera flera olika typer av cache funktioner.

Personligen favoriserar jag affärslogik i SQL lagret, med ett MVC ramverk som har total kod/design separering, och när det inte räcker till så stoppar man på en Varnish Caching http proxy server som verkligen kan snabba upp saker o ting. Halvera access tider många ggr.

Vet att detta va inget direkt svar på din initiala fråga, men att bygga ett bra väl fungerande cache system kräver oftast lite mer planering och baktanke, jag tror du nog har bra koll på koden egentligen då du öht överväger att koda en cache hantering. Så då kanske det är procedurerna kring cache hantering och optimeringen av dessa som kan vara bättre o tänka över. =)
NeoTech är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-12, 13:36 #2
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
qson qson är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Sep 2006
Inlägg: 513
Oj NeoTech, det var ett informationsrikt inlägg, och mycket intressant!
Som du skriver är det inte riktigt vad jag behöver (mitt skript består av två filer, totalt 160 rader enkel php-kod)
Det är statiskt innehåll jag vill cacha .Det finns inget dynamiskt innehåll på sidan, men jag kan inte heller serva rena html-filer då det det skall vara transparent mot redaktören som lägger in html-filer i en mapp som sedan skall parsas och cachas. Man ska inte behöva gå in och "manuellt" uppdatera cache. Därför använder jag php och filemtime för att upptäcka när en originalfil ändrats eller lagts till.

Anledningen att jag vill cacha är för att undvika en dom-parser vid varje sidläsning. Jag läser in ett html-dokument till DOMDocument, plockar ut några få element ur detta, ändrar några attribut för vissa element och skickar detta till webbläsaren. Det känns onödigt att parsa samma html-dokument vid varje sidladdning när jag kan parsa den en gång, spara resultatet och sedan bara parsa igen om originalfilen ändrats.

EDIT: Skall komma ihåg ditt inlägg till mina övriga projekt :-)
qson är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017