Was ist die Userland-Caching-APCu-Erweiterung in PHP?

Lesezeit: 2 Minuten

Benutzer-Avatar
Tonix

Nur eine Frage zu OPcache, weil ich sie nicht verstanden und bei Google eine Antwort gefunden habe:

Was bedeutet es, wenn wir über Userland-Caching sprechen? Ich weiß, dass PHP mit der neuen Zend OPcache-Erweiterung vorgebündelt ist und dass diese Erweiterung Op-Code im RAM zwischenspeichert, um den Prozessor nicht zu sehr zu belasten, der die PHP-Quelle bei jeder Anfrage in Op-Code konvertieren sollte, aber was ist mit dem APCu wann Sie sagen, dass es Userland-Caching implementiert?

Was ist Userland-Caching? Ist es möglich, APCu und Zend OPcache zusammenzuhalten oder nicht? Sollte Zend OPcache anstelle von APCu verwendet werden?

APCu wurde eigentlich von Joe Watkins als Antwort auf OPcache entwickelt. APC unterstützt sowohl Opcode-Caching als auch Daten-Caching, ist aber seit PHP 5.4 mit Stabilitätsproblemen bei der Unterstützung von Opcode-Caching behaftet. Nachdem Zend Inc die Quelle von Opcache geöffnet und unter die PHP-Lizenz gestellt hatte, wurde es zum zentralen und bevorzugten Opcode-Cache von PHP 5.5. Aber Es unterstützt nur Opcode-Caching und kein Daten-Caching.

Joes APCu ist im Wesentlichen eine abgespeckte Version von APC, die nur den Daten-Caching-Code enthält und für die Verwendung zusammen mit OpCache konzipiert ist wenn Sie benötigen Daten-Caching.

Beachten Sie, dass Opcode-Caching auf Quellcodeebene transparent ist, Daten-Caching jedoch nicht. Ihre Anwendung muss explizit codiert werden, um sie zu verwenden. (Obwohl Standard-PHP-Apps wie WordPress, Drupal, phpBB, MediaWiki, … diese Unterstützung standardmäßig enthalten).

  • APCu implementiert also eine In-Memory-Daten-Caching-Funktionalität wie das Memcached-Caching-System? Hab ich recht?

    – Tonix

    30. November 2014 um 16:17 Uhr

  • Ähnlich, aber anders, da Memcached prozessextern und RPC-fähig ist, also clusterfähig und von Natur aus besser skalierbar ist – wenn auch mit einem höheren Overhead pro Anruf. APCu verwendet eine gemeinsam genutzte Speicherregion und die PostgreSQL-Spinlock-Bibliothek, sodass die meisten API-Aufrufe ohne Wartezeiten in Bearbeitung sind und daher extrem leichtgewichtig sind – aber nicht außerhalb des Servers skalierbar sind.

    – TerryE

    1. Dezember 2014 um 19:44 Uhr


  • Danke für deine Antwort und Erklärung!

    – Tonix

    2. Dezember 2014 um 14:58 Uhr

  • Spinlocks sind eine Option, nicht die Standardeinstellung. RWlocks sind Standard, Mutex-Fallback darauf, Spinlocks-Fallback, um gemeinsam genutzten Mutex zu verarbeiten.

    – Joe Watkins

    5. Dezember 2014 um 15:04 Uhr

  • Danke für die Klarstellung Joe. Ich antwortete aus dem Gedächtnis. Sie verwenden die pthread rwlocks, wenn pthreads verfügbar ist, und greifen nur auf den PostgreSWL-Code zurück, nicht jedoch. In jedem Fall gilt der allgemeine Kommentar, dass die meisten API-Aufrufe ohne Wartezeiten in Bearbeitung sind und daher extrem leichtgewichtig sind – aber außerhalb des Servers nicht skalierbar sind 🙂

    – TerryE

    6. Dezember 2014 um 17:34 Uhr

1142570cookie-checkWas ist die Userland-Caching-APCu-Erweiterung in PHP?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy