Jeder Prozeß kann beim Betriebssystem Hauptspeicher anfordern.
Der bereitgestellte Speicher steht ausschließlich dem anfordernden
Prozeß zur Verfügung. Der Zugriff auf den Speicher ist sehr schnell und
die heute üblichen Hauptspeichergrößen erlauben eine für Webapplikationen
interessante Cache-Größe. Für jeden Cache-Eintrag kann ein passender
Speicherblock allokiert werden. Anderungen an der Größe eines
Cache-Eintrags sind jederzeit möglich. Fragmentierungsprobleme
gibt es im engeren Sinne keine, im weiten Sinne kümmert sich das Betriebssystem
um etwaige Schwierigkeiten.
Da mit jedem HTTP-Request ein neuer PHP-Interpreter gestartet wird,
ist PHP normalerweise nicht zur Bereitstellung von Prozeßspeicher geeignet.
Will man Prozeßspeicher nutzen, so bietet sich die Verwendung eines
Hintergrundprozeß an, der über Sockets mit den anfragenden PHP-Prozessen
kommuniziert.
Einen PHP-Interpreter als Hintergrundprozeß zu verwenden, ist nicht ratsam.
PHP wurde nicht für lange Laufzeiten konzipiert, es ist nicht bekannt
ob Speicherlecks vorhanden sind. Zudem können der PHP-Hintergrundprozeß
und die PHP-Interpreter nur serialisierte Daten austauschen, was das
Speichermedium künstlich verlangsamt.
Einen Ausweg bieten Application-Server Ansätze,
wie der Site Resource Manager (SRM) von Vulcan Logic.
Aber auch msession
von Mohawk Software
kann benutzt werden. Für msession gibt es einen experimentellen PEAR-Datencache Container.