Citat:
Originally posted by danielos@Apr 28 2007, 20:22
Installerade apc nu och vilken skillnad Tack för tipset
|
Japp. Det är en viss skillnad. Ett tips är att cachelagra förstasidan och andra liknande sidor i APC också, dvs i minnet.
Jag använder följande två funktioner när jag vill åstadkomma detta:
Kod:
function startCommonCache($file, $extend = "") {
if(CACHE) {
if($page = apc_fetch("PAGE::" . $file . $extend)) {
echo $page;
designFoot();
exit;
}
ob_start();
}
}
function stopCommonCache($file, $extend = "") {
if(CACHE) {
apc_store("PAGE::" . $file . $extend, ob_get_flush(), 900);
}
}
CACHE är en konstant som anger om det skall cachas och sådär (är satt till false på utvecklingssiten och true på den vanliga siten). designFoot är en funktion som skriver ut designfoten (bl.a sidpanelen som inte skall cachas). TTL (time to live) är satt till 900 sekunder. $extended använder jag till om det behövs mer info, såsom information från GET.
På en vanlig sida kan man därefter använda dessa. Exempel:
Kod:
// inkludera filer här
startCommonCache(__FILE__);
// hämta massa data från databasen och skriv ut resultatet
stopCommonCache(__FILE__);
designFoot();
Givetvis kan typ använda debug_ backtrace-funktionen för att få reda på från vilken fil funktionen anropades ifrån istället för att skicka med det som parameter.
Jag tycker det är ett rätt lätt sätt att hantera cache, faktiskt. Det kanske går att förbättra, men jag tycker det fungerar rätt bra. Fast jag är så klart mottaglig för kommentarer.
|