Alternative PHP Cache (APC/APCu) 2.1.0

License Agreement
GNU Lesser General Public License (LGPL)
Website
https://tims.bastelstu.be/forum/index.php/Board/29-Alternative-PHP-Cache-APCu/
Supported Versions
Burning Board 4.0 / WCF 2.0
Burning Board 4.1 / WCF 2.1

The Alternative PHP Cache (SPC/APCu) improves performance. The opcode cache uses shared memory and directly executes code from there, minimizing the amount of slow disk reads and memory copying at runtime.


Attention: The APC/APCu php extension needs to be activated for this plugin to be running successfully. Please check your phpinfo.

This plugin provides support for APC and APCu


After installation you can enable the APC/APCu plugin using: Options > General > Cache > Alternative PHP Cache

Images

  • Version 2.1.0

    wcf 2.1 version

  • Version 2.0.0 pl 3

    • fix for the next APCu release
  • Version 2.0.0 pl 2

    fix broken update

  • Version 1.0.5 pl 1

    * fix issuse with APC
    * update ttl calculation function

  • Version 1.0.5

    * check cache lifetime to reduce cache mistakes

  • Version 1.0.4

    * add check if cache file exists bevor store, delete or fetch
    * improve apc class

  • Version 1.0.3 pl 1

    * fix clear cache issuse

  • Version 1.0.3

    add support for APCu 4.0.0 and 4.0.1 (i found a way to support these versions :P)

  • Version 1.0.2

    * exclude APCu version 4.0.0 and 4.0.1
    * improve apc class

  • Version 1.0.0 pl 3

    exclude APCu version 4.0.1 (apcu 4.0.1 doesn't store cache files)

  • Die Implementierung von APCu verschlechtert leider die Performance mehr als der cache gewinnt. Wäre eine Implementierung ohne zeitintensieves array sortieren möglich? https://i.imgur.com/qby1Xdy.png
    Cachtime und exists loopen über den gesamten cache, könnte dies nicht verhindert werden oder von apcu übernommen was vermutlich wesentlich performanter ist, auch sollte dies ohne loopen möglich sein, mit direktem O(1) access?

    • uuh das mit dem usort ist mir garnicht aufgefallen, das ist eigentlich nur für die ausgabe im acp nötig,
      das mit dem cachetime und exist war abersichtlich so gelöst da leider die verschiedenen apcu versionen unterschiedliche ausgaben haben

    • Ich kenne mich leider nicht wirklich mit der APCu API aus. Leider kann ich nur sagen, dass ich bei mittleren Foren (+200k Beiträge und Page Views) die Page Generation mit der APCu Implementierung fast verdoppel, gegenüber dem Dateisystem (SSD Raid mit avg. 4% read/write usage).
      Ich verwende APCu mit Xenforo und bin begeistert was dies dort reißt. Es wäre wirklich super wenn die Implementierung verbessert werden kann. Magst du es dir selber mal mit XDebug anschauen, ist denke ich am besten. (Ich gehe mal davon aus, dass du es selber nutzt, falls nicht und wenn du production Daten brauchst, kann ich dir gerne Zugriff geben)

    • danke für das angebot, ich werde mir die problematik mal am wochenende anschauen, kannst du mir noch verraten welche php und apcu version du im einsatz hast?

    • Klar und vielen Dank schon mal :)
      APCu Version 4.0.11
      PHP Version 5.6.27-1+deb.sury.org~trusty+1

  • mit php 7.0 noch relevant?

  • ist memcached oder apcu besser?

  • Seit dem Upgrade auf PHP 5.6 erhöht das Plugin die Ladezeiten von ursprünglich 0,1 Sekunden auf 2-7 Sekunden. APCu ist installiert.

  • Was ist denn nun besser? APC oder APCu? :D

  • In der phpinfo steht nichts von APC... wenn das Plugin einfach Installiere kann es sein das nichts mehr geht oder kann ich es bedenkenlos Testen?

    • wenn in der phpinfo nichts von APC oder APCu steht ist das plugin selber total wirkungslos da direkt wieder die diskcache geladen wird, sollte also ohne bedenken installierbar sein

  • Wie lösche ich den Cache? Welche Dateien in welchem Ordner müssen für eine manuelle Leerung gelöscht werden?

    • bei APC/APCu werden keine datein geschrieben um hier den cache zu leeren im acp einfach auf cache leeren klicken

  • hi, benötigt man eine gewisse Größe damit man den Vorteil von APC merkt? Mir kommt es auf einem frischen System mit 4 Nutzern, wenigen Beiträgen und aber vielen Kategorien so vor, als wäre die Option Dateisystem schneller beim durchklicken...

    • bei kleinen foren hast du keinen vorteil und eigentlich keinen nachteil diese caching methode tut aber erst bei großen foren ihr potential zeigen somit ist es für kleine foren eher irrelevant welsche methode man einsetzt

  • Funktioniert bei mir leider nicht zuverlässig. (IIS8, PHP 5.5.8) Es kommt regelmäßig zu Serverfehlern (Absturz des PHP-CGI-Prozesses)

  • kommt folgender fehler: Fatal error: Call to undefined function wcf\system\cache\source\vdelete() in /home/tchost/coderz.pro/htdocs/wcf/lib/system/cache/source/ApcuCacheSource.class.php on line 116

  • beim aktualisieren bekomme ich fogende meldung

  • Gibt es bereits Erfahrungen mit dem Plugin auf einem IIS8 (Windows Server 2012) mit PHP 5.5?

    • ich denke bisher nicht sollte aber ansich kein problem sein da die php extension hier die selbe ist wie die für linux ;) sollte es aber dennoch probleme geben werde ich diese beheben

  • Hallo habe folgendes Problem, habe APC installiert, aber ich Frage mich wieso ich im ACP nichts angezeigt bekomme, bzw. keine Daten und Zugriffe? Aber wenn ich die apc.php aufrufe bekomme ich eine Statistik aufgezeigt das sich was tut?

  • hey heute hab ich gesehen gibt es ein update hatten gestern die version 1.0.1 installiert nach dem update steht da nun version 1.0.3 pl 1 und ich der vorgang konnte bei 50% scheinbar nicht abgeschlossen werden da ich diesen Fatal Error bekam... http://gyazo.com/50bdd0548259934b48a5fa692a93f11b der kommt auch wenn ich versuche das plugin zu löschen oder die option von APC auf einen anderen Cache Type zu ändern... Hoffe du oder jemand anderes kann mir helfen.

    • und ja wir haben die neueste version (4.0.1) von woltlab auch gestern das update gemacht.

    • ** EDIT hat sich erledigt... hab einfach die entsprechenden zeilen aus den dateien entfernt. konnte damit den fehler beheben das plugin deinstallieren. vorsichtshalber nochmal die 1.0.1 version installiert und deinstalliert.

    • das problem ist bekannt und wurde bereits mit einer neueren version behoben

  • bring APC einen Vorteil gegenüber Xcache?

  • APC Version 4.0.2 sieht mir fast nach Ubuntu aus ... Ich nutz Debian (wheezy), php-apc ist installiert, Version 3.1.13-1. Wie sieht das mit den Versionen aus?

    • APCu gibts erst ab php 5.5 und kann z.b. von dotdeb.org bezogen werden APC für php unter version 5.5 wird ebenfalls unterstützt darunter fällt deine version

    • Okay cool cool. Die Frage ist: was ist besser? Hat APCu gegenüber APC irgendwelche Vorteile?

    • nein APCu ist einfach eine weiternetwicklung für php 5.5 da APC nichtmehr weiterentwickelt wird

    • Ah, okay. Schätze dann sollte ich mal auf PHP 5 updaten.

    • hierbei bitte beachten das APCu noch eine beta version ist daher habe ich APCu version 4.0.0 und 4.0.1 excluded sprich diese werden nicht berücksichtigt der grund ist das in diesen beiden versionen fehler existerten die die cache daten entweder nicht gespeichert haben oder nach sehr kurzer zeit einfach wieder verworfen haben

  • Ich bin mir gerade etwas unsicher: Funktioniert das wirklich nur mit APCu oder auch mit APC?

  • Was wird da alles in das Ram geladen ? ich habe auf meinem managed Server eaccletator+Fast-cgi ich kann ber umstellen auf APC+Fast-cgi

  • was bringt das? besser wie Standard cache?

    • apc(u) speichert im arbeitsspeicher und nicht auf der festplatte daher ist das lesen der cache daten schneller

    • das sollte man halt unter Beschreibung reinschreiben :)

    • ic sehe gerade das im ACP ja bereits das Eingebaut ist Alternative PHP Cache (experimentell) ist das was anderes?

    • prinzipiell das gleich nur das APCu nicht unterstüzt wird und fehler verursacht und was hierbei wichtig ist es wird mit dem update auf wcf2.0.1 auf dem wcf entfernt bzw. deaktiviert

    • steht in der kurz beschreibung unter dem titel :D

  • Beeindruckend! Klasse!