Spiderman is having me for dinner tonight… Teil 3

Von | 16. Februar 2009

Ich hab ja schon in Teil 1 geschrieben, dass ich apc einsetze. Das Teil bringt ohne irgend welche Programmierung schon einiges. Es hält den Bytecode der PHP-Skripts im Speicher. Den Erfolg kann man ganz einfach so abrufen:

print_r(apc_cache_info());

Mit ein bisschen Programmieraufwand kann man Dank apc noch viel mehr rausholen. Auf rothsee-triathlon.de ist nicht alles neu und in php. Manche Teile laufen auch als alte Perl Skripts im Hintergrund. Die Hole ich mir dann per http zur Laufzeit rein. Nachdem das aber immer wieder die gleichen Files sind lässt sich der Content prima cachen. Also hab ich eine Funktion für diesen Zweck definiert:

function request_cache($url) {
        if (function_exists('apc_fetch')) {
           $md5=md5($url);
           $doc = apc_fetch($md5,&$success);
	   if(!$success) {
		$doc = file_get_contents($url);
		if ($doc === false) return "";
		apc_store($md5, $doc);
                $doc .= "\n";
           } else {
                $doc .= "\n";
           }
	} else {
		$doc = file_get_contents($url);
                $doc .= "\n";
        }

	return $doc;
}

und rufe sie wie folgt auf:

$value = request_cache($request);

Die gecachte Seite ist „nur“ ca. um den Faktor 100 schneller. Kleiner Aufwand hoher Nutzen. Sehr geil.

Ein Gedanke zu „Spiderman is having me for dinner tonight… Teil 3

  1. Pingback: Spiderman is having me for dinner tonight…. Teil 4 | Gerds Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.