apc vs eaccelerator vs xcache

105

Ich recherchiere, welche davon ich verwenden soll, und ich kann keine finden, die auffällt. Eaccelerator ist schneller als APC , aber APC wird besser gewartet. Xcache ist schneller, aber die anderen haben eine einfachere Syntax.

Hat jemand Empfehlungen zur Verwendung und warum?

Galen
quelle
1
eAccelerator sieht nicht so aus, als hätte es seit über einem Jahr eine Veröffentlichung gegeben. xcaches VC ist sicherlich aktiv, aber ich konnte mich nicht auf Releases und einen Fokus konzentrieren. Alles läuft auf eine Software hinaus, die gewartet wird, und APC gewinnt sie zweifellos.
Bis
11
Es ist das dritte Quartal 2011. Haben sich die Dinge seit 2009 geändert?
John

Antworten:

110

APC wird in PHP 6 enthalten sein, und ich denke, es wurde aus gutem Grund ausgewählt :)

Es ist ziemlich einfach zu installieren und beschleunigt die Dinge auf jeden Fall.

David Snabel-Caunt
quelle
Ich habe diese drei abgewogen und mich aus diesem Grund entschlossen, mit APC zu testen. Die anderen beiden scheinen ebenfalls Stabilitätsprobleme zu haben.
Steve Claridge
46
Ich bin nur auf drei Probleme mit APC gestoßen, die alle unter meiner Kontrolle standen. 1) Lassen Sie APC nicht auffüllen. Stellen Sie sicher, dass genügend Speicher zugewiesen ist. 2) Verwenden Sie apc_clear_cache () nicht auf einem aktiven Server. 3) APC kommt mit starken Sperrenkonflikten nicht wirklich gut zurecht. Versuchen Sie nicht, aus mehreren Prozessen gleichzeitig auf einen einzelnen Schlüssel zu schreiben.
Frank Farmer
10
Derzeit gibt es kein PHP6.
Evert
20
Da dieser Thread ein Top-Ergebnis in Google ist, sollte er wahrscheinlich aktualisiert werden, um anzuzeigen, dass Zend Optimizer in PHP 5.5 zusammengeführt wird, das diesen Monat veröffentlicht wurde. Sie können es ausschalten und stattdessen APC verwenden, obwohl ich nicht sicher bin, warum Sie dies möchten.
Wald
2
@Benjamin Der Benutzerdatenspeicher kann mit APCu ( github.com/krakjoe/apcu ) wiederhergestellt werden, das neben ZO installiert und verwendet werden kann.
Swader
23

Überprüfen Sie Benchmarks und Vergleiche:

hier und hier und da

Boris Guéry
quelle
15
Schade, dass sie so alt sind. 2006? Ewww.
Analyse
3
Ich nehme an, wir können ein paar Jahre warten und der vorhergehende Kommentar wird alt sein?
Benmarks
5
Erfolg. Es ist jetzt 3 Jahre alt. Ewwww.
Swader
3
Alter, es ist schon 2016. Kann jemand die Benchmarks vor einem ganzen Jahrzehnt wiederholen?
Pacerier
13

APC auf jeden Fall. Es wurde von den PHP-Leuten geschrieben, und obwohl es möglicherweise nicht die höchsten Geschwindigkeiten aufweist, können Sie darauf wetten, dass es die höchste Qualität ist.

Außerdem erhalten Sie einige weitere nützliche Funktionen, die ich ständig verwende ( http://www.php.net/apc ).

Evert
quelle
3
Facebook ist auch ein starker Nutzer von APC - sie verwenden Gigabyte, wenn nicht Terrabyte APC-Cache. Viele der Verbesserungen, die sie vorgenommen haben, wurden wieder veröffentlicht und in die Hauptversion von APC integriert.
Frank Farmer
13
Sie denken an memcached.
Evert
3
@Jeder FB versucht, einen lokalen APC-Cache zu erreichen, bevor eine TCP / IP-Verbindung zu memcached scribd.com/doc/4069180/… hergestellt wird
Andy
1
Wahrscheinlich ... aber wenn er über Verbesserungen spricht, die zurück veröffentlicht wurden, etc .. ist das wahrscheinlich Memcache. Es sei denn, sie haben dasselbe mit apc gemacht.
Evert
@Andy, Facebook nutzt nichts davon. Es verwendet eine eigene HipHop-VM.
Pacerier
11

Am Ende habe ich mich für eAccelerator entschieden - der Geschwindigkeitsschub, der geringere Speicherbedarf und die Tatsache, dass die Installation sehr einfach war, haben mich beeinflusst. Es hat auch ein schönes webbasiertes Frontend, um den Cache zu leeren und einige Statistiken bereitzustellen.

Die Tatsache, dass es nicht mehr gewartet wird, ist für mich kein Problem - es funktioniert, und das ist alles, was mich interessiert. Wenn es in Zukunft PHP6 (oder was auch immer) kaputt macht, werde ich meine Entscheidung neu bewerten und mich wahrscheinlich für APC entscheiden, einfach weil es von den PHP-Entwicklern übernommen wurde (sollte also noch einfacher zu installieren sein).

gbjbaanb
quelle
4
"Wenn es PHP6 kaputt macht" ... meinst du nicht "wann?" :)
Brian Lacy
2
Es ist lustig, weil es 5,5 Jahre später immer noch kein "PHP 6" gibt.
Eric L.
@Eirik, PHP 6 ist so gestern. Es ist jetzt 7 .
Pacerier
11

Es kann wichtig sein, auf die aktuellen stabilen, instabilen und dev-Versionen der einzelnen Versionen (einschließlich Datum) hinzuweisen:

APC

http://pecl.php.net/package/apc

dev        dev          2013-09-12
3.1.14     beta         2013-01-02
3.1.9      stable       2011-05-14

Xcache

http://xcache.lighttpd.net/

dev/3.2     dev        2013-12-13
dev/3.1     dev        2013-11-05
3.1.0       stable     2013-10-10
3.0.4       stable     2013-10-10

eAccelerator

https://github.com/eaccelerator/eaccelerator

dev         dev        2012-08-16
0.9.6-rc1   unstable   2010-01-26
0.9.5.1     stable     2007-05-16
Ryan Schumacher
quelle
1
Aktualisierte neueste Versionen - Xcache scheint sowohl in den neuen Funktionen als auch beim Patchen früherer Versionen die meiste Aktivität zu haben
Ryan Schumacher
9

In allen Tests, die ich gesehen habe, arbeitet eAccelerator schneller als jeder andere Cache und verwendet dazu weniger Speicher. Es wird mit einem raffinierten Skript geliefert, mit dem Sie die Cache-Auslastung anzeigen und den Cache usw. löschen können. EAccelerator ist mit xdebug und Zend Optimizer kompatibel.

APC wird in PHP aufgenommen, da es von den PHP-Entwicklern gepflegt wird. Es funktioniert sehr gut, aber nicht so gut wie eAccelerator. Und es gibt Kompatibilitätsprobleme mit Zend Optimizer.

Xcache wurde von den Entwicklern von lighttpd entwickelt. Benchmarks zeigen, dass es ähnlich wie eAccelerator und schneller als APC funktioniert.

Welches ist das Beste?

APC = Großartig, wenn Sie einen einfachen Cache möchten, der immer mit PHP funktioniert, ohne viel Aufhebens. eAccelerator = Wenn Sie Zeit haben, es zu warten, halten Sie es auf dem neuesten Stand und verstehen Sie, wie es funktioniert, es wird schneller arbeiten. Langzeitunterstützung nicht so sicher wie APC, da APC von den PHP-Entwicklern durchgeführt wird.

Prom3th3an
quelle
7

Ich habe eAccelerator und XCache mit Apache, Lighttp und Nginx mit einer Wordpress-Site getestet. eAccelerator gewinnt jedes Mal. Das Schlimme sind nur die fehlenden Pakete für Debian und Ubuntu. Nach einem PHP-Update funktioniert der Server häufig nicht mehr, wenn die eAccelerator-Module nicht neu kompiliert werden.

Der letzte RC von eAccelerator stammt vom 15.07.2009 (0.9.6 rc1) und unterstützt PHP 5.3

devarni
quelle
6

Ich habe immer APC mit PHP 5.1 und 5.2 verwendet, aber ich hatte viele (zufällige) Fehler mit APC mit PHP 5.3: Seltsame leere Seiten, zufällige Fehler aufgrund von Speichermangel. Sie alle verschwanden, als ich APC deaktivierte. Dies war jedoch keine Option, da eine Website mit hohem Volumen betrieben wird.

Also habe ich eaccelerator ausprobiert. Bisher war es absolut solide und die Geschwindigkeitssteigerung ist noch größer als bei APC. Die APC-Leute müssen wirklich einige Zeit mit Bugfixing verbringen.

Miele
quelle
1
Ich hatte die gleichen Probleme mit APC und PHP 5.3. Danke für den Kommentar. PHP ohne Caching in meinem Setup ist viel schneller und zuverlässiger als mit APC. Die leeren Seiten und Speicherfehler machten mich verrückt, bis ich APC entfernte.
Paul D. Eden
Ich habe
4

Ich denke, APC ist der richtige Weg, es sei denn, Sie verwenden Zend Optimizer auf der Website. APC ist nicht mit Zend Optimizer kompatibel. In diesem Fall müssen Sie sich für etwas wie eAccelerator entscheiden.

rg88
quelle
Wenn Sie Zend Optimizer verwenden, benötigen Sie nichts anderes, da es auch Optcode-Caching ausführt und eine APC-kompatible Schnittstelle verfügbar macht.
Txyoji
3

Selbst wenn sowohl eacceleator als auch xcache bei mäßiger Belastung recht gut funktionieren, behält APC seine Stabilität bei ernsthafter Anforderungsintensität bei. Wenn wir hier über ein paar hundert Anfragen pro Sekunde sprechen, werden Sie den Unterschied nicht spüren. Aber wenn Sie versuchen, mehr zu antworten, bleiben Sie auf jeden Fall bei APC. Insbesondere, wenn Ihre Anwendung übermäßig dynamische Eigenschaften aufweist, die unter solchen Belastungen wahrscheinlich zu Sperrproblemen führen. http://www.ipsure.com/blog/2011/eaccelerator-as-zend-extension-high-load-averages-issue/ kann helfen.

Matt Dryden
quelle
2

APC segfaults den ganzen Tag und die ganze Nacht, habe keine Erfahrung mit eAccelerator, aber XCache ist sehr zuverlässig mit vielen Optionen und ständiger Entwicklung.

ManreeRist
quelle