| 

.NET C# Java Javascript Exception

6
Speziell für PHP 5.5 gibt es die User-Cache-Extension APCu: Seit PHP 5.5 ist der Bytecode-Cache OpCache enthalten, die bisher genutzte Extension APC wird dann nicht mehr benötigt. Doch wer APC nicht nur wegen seiner Bytecode-Cache-Fähigkeit installiert sondern auch die User-Cache-Funktionen genutzt hat, kann jetzt die abgespeckte Erweiterung APCu nutzen, in der alle Bytecode-Funktionen entfernt wurden. […]

Speziell für PHP 5.5 gibt es die User-Cache-Extension APCu: Seit PHP 5.5 ist der Bytecode-Cache OpCache enthalten, die bisher genutzte Extension APC wird dann nicht mehr benötigt. Doch wer APC nicht nur wegen seiner Bytecode-Cache-Fähigkeit installiert sondern auch die User-Cache-Funktionen genutzt hat, kann jetzt die abgespeckte Erweiterung APCu nutzen, in der alle Bytecode-Funktionen entfernt wurden.

(Wer die Upload-Progress-Funktionen von APC genutzt hat, kann nun die eingebauten Session-Upload-Progress-Funktionen nutzen, aber das ist ein anderes Thema)

Die relativ schlanke Extension APCu (GitHub-Repository), in der nur noch die übrig gebliebenen Funktionen wie z.B. apc_store() und apc_fetch() enthalten sind, wurde dann noch etwas verbessert. Vorher war das unmöglich da die komplizierte große APC-Extension nur schwer wartbar war.

Die Version 4.0.1 von APCu sollte unbedingt vermieden werden da sie nicht APC-kompatibel ist, es gab da einen Bug. Also 4.0.0 oder besser >=4.0.2 verwenden. Die Installation ist denkbar einfach. Falls PHP 5.5 über das Paketmanagement von Ubuntu installiert wurde reicht ein einfaches:

sudo apt-get -V install php5-apcu

Oder via PECL installieren:

sudo pecl install APCu-beta
sudo -i
echo "extension=apcu.so" > /etc/php5/mods-available/apcu.ini
ln -s /etc/php5/mods-available/apcu.ini /etc/php5/conf.d/20-apcu.ini

Oder selbst kompilieren aus dem GitHub-Repository:

git clone https://github.com/krakjoe/apcu.git
cd apcu
pecl package package.xml
sudo pecl install -f apcu-4.0.2.tgz
echo "extension=apcu.so" > /etc/php5/mods-available/apcu.ini
ln -s /etc/php5/mods-available/apcu.ini /etc/php5/conf.d/20-apcu.ini

Danach nicht vergessen den Webserver/FPM neu zu starten. Mit einem kleinen Testscript kann man dann feststellen ob die User-Cache-Funktionen wie erwartet funktionieren:

<?
$var = apc_fetch('testvar');

if ($var===false) $var=0;
echo $var;

apc_store('testvar', ++$var);

Bei jedem Refresh der Seite zählt der Zähler hoch.

Der Vollständigkeit halber sollte noch erwähnt werden dass es noch eine Alternative zu APCu gibt: Yac (Yet another Cache). Diese neue Extension ist schneller als APCu, aber nicht kompatibel, sodass man alle apc_* Funktionen ändern muss. Dafür erhält man einen User-Cache ohne Locks, der aber laut Autor noch nicht in Produktionsumgebungen genutzt werden sollte. Wer aber das letzte bischen Performance braucht, kann sich Yac mal anschauen.

php php-5.5 apc opcache apcu usercache
Weitere News:
Schreibe einen Kommentar:
Themen:
usercache apcu opcache apc php-5.5 php
Entweder einloggen... ...oder ohne Wartezeit registrieren
Benutzername
Passwort
Passwort wiederholen
E-Mail