Frage

Hat jemand Erfahrung mit PHP-Beschleunigern wie z MMCache oder Zend Accelerator?Ich würde gerne wissen, ob PHP mit PHP vergleichbar ist Schneller Web-Technologien.Gibt es auch Kompromisse bei der Verwendung dieser?

War es hilfreich?

Lösung

Beachten Sie, dass Zend Optimizer und MMCache (oder ähnliche Anwendungen) völlig unterschiedliche Dinge sind.Während Zend Optimizer versucht, den Opcode des Programms zu optimieren, speichert MMCache die Skripte im Speicher zwischen und verwendet den vorkompilierten Code wieder.

Ich habe vor einiger Zeit einige Benchmarks durchgeführt und Sie können die finden Ergebnisse in meinem Blog (allerdings auf Deutsch).Die grundlegenden Ergebnisse:

Zend Optimizer allein hat überhaupt nicht geholfen.Tatsächlich waren meine Skripte langsamer als ohne Optimierer.

Wenn es um Caches geht:* am schnellsten: eAccelerator * XCache * APC

Und:Sie möchten unbedingt einen Opcode-Cache installieren!

Zum Beispiel:Alternativtext http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Dies ist die Dauer, die es dauerte, die WordPress-Homepage 10.000 Mal aufzurufen.

Bearbeiten: Übrigens enthält eAccelerator selbst einen Optimierer.

Andere Tipps

MMCache ist veraltet.Ich empfehle beides http://pecl.php.net/package/APC oder http://xcache.lighttpd.net/, die Ihnen beide auch variablen Speicher bieten (wie Memcache).

Beide sind interessant und sorgen für einen Geschwindigkeitsschub, da sie den Quellcode in eine binäre Darstellung kompilieren, die dann von der PHP-Engine ausgeführt wird.

Auf jeder großen Website, die mit PHP läuft (z. B. Facebook), wird eine Art Opcode-Cache-System wie MMCache ausgeführt.

Das Problem besteht darin, dass sie je nach System nicht ganz einfach einzurichten sind.

Abhängig davon, wie viel von Ihrem PHP-Code tatsächlich ausgeführt wird und wie lange die Ausführung dauert, kann dies ein wirklich großer Gewinn sein.Es wird sicherlich nicht schaden, aber der Gewinn, den Sie sehen, hängt stark davon ab, womit Sie Ihre Zeit gerade verbringen.

Übrigens wurde mmcache jetzt in ein anderes Projekt integriert. Ich habe den Namen vergessen, aber Google wird es Ihnen sagen.

Ich verwende APC auf meinen Produktionsservern und es funktioniert sofort nach dem Auspacken ziemlich gut.Kompilieren Sie es und fügen Sie es zu PHP hinzu, und es müssen nicht mehr viele Anpassungen vorgenommen werden.Ich überprüfe es hin und wieder, nur um Statistiken zu überprüfen, aber da ich MVC häufig verwende, ändern sich alle Hauptdateien (Router, Controller usw.) selten täglich, sodass der Code kompiliert bleibt und ziemlich effizient läuft .

Derzeit verwenden wir APC, kostenlos und es war nur ein einfaches Plug-and-Play auf unseren Live-Servern.Bietet eine enorme Leistungssteigerung für unsere Website, insbesondere mit zunehmender Projektgröße.Ich habe auch apc.stat deaktiviert, sodass nicht überprüft wird, ob der Code aktualisiert wurde. Wenn wir also den Code auf der Live-Site aktualisieren müssen, starten wir Apache neu.

Ich verwende APC und kann bestätigen, dass es die CPU- und E/A-Last auf einem App-Server drastisch reduzieren kann, wenn Sie eine hohe Cache-Trefferrate beibehalten.Es erspart Ihnen nicht nur das Kompilieren, sondern kann Ihnen auch das Lesen der PHP-Dateien von der Festplatte ersparen.(d. h.Die Bytecodes werden direkt aus dem Hauptspeicher bereitgestellt, es ist also superschnell.) Es verringert die Geschwindigkeit beim Rendern einer einzelnen Seite und erhöht die Anzahl der Anfragen pro Sekunde, die Ihr Server verarbeiten kann.

Wenn Sie RedHat oder CentOS verwenden, ist die Installation von APC ganz einfach:

yum install php-devel httpd-devel php-pear
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini
# if you're using SELinux:
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so
/etc/init.d/httpd restart

Sie haben nach den Nachteilen gefragt.Der einzige Nachteil ist, dass es etwas Speicher benötigt.Der Standardwert bei APC beträgt 30 MB, kann aber angepasst werden, und die Kosten für ein wenig Speicher machen sich durch die höhere Geschwindigkeit und Antwortrate mehr als bezahlt.

Die Tests von BlaM umfassten alle von WordPress durchgeführten DB-Aufrufe.Wenn Sie weniger DB-Aufrufe durchführen, werden Sie feststellen, dass die Leistungssteigerung von Opcode-Caches noch dramatischer ausfällt.

Ich habe Zend Accelerator früher (etwa 2004) ein wenig verwendet.Es hat sicherlich zu erheblichen Leistungssteigerungen bei dem Code geführt, mit dem es arbeiten konnte, aber leider war das System, das ich verwendete, so konzipiert, dass es häufig Code dynamisch lädt und ihn dann auswertet, womit Zend Accelerator damals nicht viel anfangen konnte (und ich Ich schätze, ich kann es immer noch nicht).

Auf der anderen Seite haben wir sicherlich einige Caching-Probleme gesehen (wobei der Code geändert wurde, die kompilierte Version jedoch aus dem einen oder anderen Grund mit der Änderung synchronisiert wurde).Ich kann mir vorstellen, dass diese Probleme mittlerweile behoben sind.

Wie auch immer, ich habe keine eindeutigen Vergleichszahlen und habe schon gar nicht das gleiche System in unterschiedlichen Umgebungen zum Vergleich geschrieben, aber bei der überwiegenden Mehrheit der Systeme wird Ihnen PHP in Bezug auf die Leistung nicht den Garaus machen.

Haben Sie sich Phalanger angesehen?Es kompiliert PHP in .NET-Code.Hier sind einige Benchmarks die zeigen, dass es die Leistung erheblich verbessern kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top