PHP 7.0 und HHVM Leistungsvergleich

Original Autor: Mark Gavalda
  • Übersetzung


Lange gab es keine Neuigkeiten, aber nach langem Warten kam PHP 7 am 3. Dezember 2015 endlich heraus. Wir haben uns entschlossen, das beliebteste PHP-basierte CMS zu testen, um zu testen, wie es mit PHP 7 funktioniert.

Dies ist ein großartiger Tag für alle, die regelmäßig PHP verwenden - für Entwickler, Hosting-Unternehmen und sogar für Endbenutzer. Die Veröffentlichung der neuen Version wird der Entwicklung dieser beliebten Webentwicklungssprache einen starken Impuls verleihen. Und letztendlich wird es sich in schnelleren Website- und Webdiensten niederschlagen.

Wir zahlen viel Aufmerksamkeit auf die Optimierung der Ladezeit Web - Sites, und eine Reihe von Leitlinien zu diesem Thema veröffentlicht, zum Beispiel: A Guide Bewertung Website Geschwindigkeitsoptimierung Anfänger , die beste Website der Free the Performance Testing die Werkzeugeund andere .

Um die Leistung des neuen PHP-Interpreters zu bewerten, haben wir verschiedene beliebte Produkte mit PHP 5.6.16, PHP 7.0 und HHVM 3.10.1 durch verschiedene Benchmarks getestet. Es wurden Tests mit dem Bare Metal durchgeführt, damit die Virtualisierung das Endergebnis nicht beeinflusste. Im Vergleich teilgenommen:

  • WordPress 4.3.1,
  • Drupal 8,
  • Magento 2.0 CE,
  • OctoberCMS Build 309,
  • PyroCMS v3 beta2,
  • Flarum v0.1.0-beta 4.

Mit Blick auf die Zukunft sagen wir, dass HHVM gewonnen hat. In unserem Projekt werden wir die Politik der «HHVM zuvor alles nicht im Stich lassen.“ Da wir uns auf Websites mit viel Verkehr konzentrieren, sind die besten verfügbaren Technologien für uns von größter Bedeutung, und dies ist eindeutig nicht PHP 7. Trotzdem werden wir die neue Version als Backup-Lösung anbieten und schrittweise vollständig darauf umsteigen PHP 5.6 in den kommenden Wochen.

Serverkonfiguration für Benchmarks:

  • Intel Xeon E5-2630v3 (8 Prozessorkerne und 16 Threads),
  • 64 GB RAM
  • 2 x 4 TB SAS-HGST-Laufwerke mit 7200 U / min in RAID 0.

Wir haben auch MariaDB 10.1.9 für den MySQL-Server und Nginx 1.9.7 für den Webserver verwendet.

WordPress 4.4


Als Testsite wurde die Hauptseite des neu installierten wptest.io ausgewählt. Innerhalb einer Minute haben 15 Benutzer gleichzeitig diese Seite geladen. Für WordPress war dies der einzige Test, bei dem der Repo Authoritative-Modus von HHVM ohne aufwändige Softwaremodifikationen verwendet werden konnte. Dies könnte die Produktivität steigern, aber nicht jeder wird es tun.



  • WordPress 4.4 HHVM RepoAuthoritative Ergebnis: 358,33 op / sec.
  • WordPress 4.4 HHVM Ergebnis: 335,13 op / s
  • WordPress 4.4 PHP 7.0 Ergebnis: 287,92 op / sec
  • WordPress 4.4 PHP 7.0 ohne OPcache Ergebnis: 84,87 op / sec.

Wordpress 4.3.1


Hier haben wieder 15 User für eine Minute gleichzeitig die Hauptseite wptest.io geladen.



  • WordPress 4.3.1 HHVM RepoAuthoritative Ergebnis: 375,48 op / sec
  • Wordpress 4.3.1 HHVM Ergebnis: 357,69 op / sec
  • WordPress 4.3.1 PHP 7.0 Ergebnis: 306,24 op / s
  • WordPress 4.3.1 PHP 5.6.16 Ergebnis: 106.45 op / sec

Drupal 8.0.1


Als Testgelände haben wir frisch CMS in der Standardkonfiguration. Auf der Hauptseite wurden 50 Teaser mit Demo-Daten (über das Devel-Modul) angezeigt. Die Seite für eine Minute gleichzeitig geladen 15 Benutzer.

Wir haben ein so interessantes Ergebnis erhalten, dass wir Drupal nach dem Testen vollständig deinstalliert, gemäß den Anweisungen erneut installiert und alle Tests wiederholt haben. Und bekam ähnliche Ergebnisse!



  • Drupal 8 HHVM Ergebnis: 1739,28 op / Sek
  • Drupal 8 PHP 7.0 Ergebnis: 917.10 op / s
  • Drupal 8 PHP 5.6.16 Ergebnis: 794.20 op / s

Magento 2.0 Community Edition


Wir haben eine Standardinstallation mit offiziellen Demo-Daten verwendet. Wir hatten auf dem internen Cache Magento drehen, weil sonst wir eine armseligen 5 op / s bekommen. Die Homepage wurde gleichzeitig von 15 Benutzern für eine Minute geladen.



  • Magento HHVM Ergebnis: 192,19 op / s
  • Magento PHP 7.0 Ergebnis: 183,87 op / sec
  • Magento PHP 5.6.16 Ergebnis: 113,34 op / sec.

OctoberCMS


Dieses auf Laravel basierende CMS gab uns die Möglichkeit, gleichzeitig das Laravel-Framework selbst zu testen. Während der Installation haben wir das Vanilla-Thema ausgewählt, das ein Benutzersystem, einen Blog und ein Forum enthält. Innerhalb einer Minute luden 15 Benutzer gleichzeitig die Hauptseite.



  • OktoberCMS HHVM Ergebnis: 583,07 op / s
  • OctoberCMS PHP 7.0 Ergebnis: 407,89 op / s
  • OctoberCMS PHP 5.6.16 Ergebnis: 248.19 op / sec.

PyroCMS v3 Beta2


Ein weiteres CMS basierend auf Laravel. Wir haben die Standardinstallation verwendet, einen Beitrag zum Blog hinzugefügt und 15 Benutzer haben diese "separate Seite" gleichzeitig eine Minute lang getestet.



  • PyroCMS HHVM Ergebnis: 177,39 op / s
  • PyroCMS PHP 7.0 Ergebnis: 145,95 op / sec
  • PyroCMS PHP 5.6.16 Ergebnis: 75,17 op / sec.

Laravel 5.1.11


Wir legen einen Standard Laravel Rahmen zur Verfügung Paket und getestet „Begrüßungsbildschirm“ ohne Verbindungen zur Datenbank. Vergessen Sie nicht , dass OctoberCMS, oben getestet basiert auf Laravel, so dass es aussieht wie Sie das Hinzufügen zusätzlicher Module, und zwar HHVM die Initiative ergreift. Wir haben eine Minute lang Tests mit jeweils 10 Benutzern durchgeführt.

Bei Verwendung von Optimierungsteams php artisan –forcewaren die php artisan config:cacheErgebnisse eineinhalb Mal besser als die unten dargestellten.



  • Laravel 5.1.11 HHVM Ergebnis: 1128.41 op / s
  • Laravel 5.1.11 PHP 7.0 Ergebnis: 1363.24 op / s
  • Laravel 5.1.11 PHP 7.0 ohne OPcache Ergebnis: 245.60 op / sec.

Flarum v0.1.0-beta.4


Flarum ist eine einfach zu bedienende Software zum Erstellen von Foren. Dies ist der gemeinsame Nachfolger von esoTalk und FluxBB. Da er eine Kombination aus Laravel-, Zend-Frameworks und Symfony-Komponenten verwendet (die derzeitige Software in der PHP-Welt), haben wir entschieden, dass es interessant wäre, sie in die Liste aufzunehmen.

Aber es scheint , dass wir ein wenig heiß sind, und in diesem Artikel für Flarum haben die Kappe verlassen - es funktioniert nicht mit HHVM, noch mit PHP 7. Auf HHVM bekommen wir einen Fehler “Fatal error: Return inside a finally block is not supported in vendor/flarum/core/src/Foundation/Application.php on line 120”, aber in PHP 7 Beitrag: “Notice: Undefined property: stdClass::$data in vendor/flarum/core/src/Http/Controller/ClientView.php on line 326”. Außerdem treten zahlreiche JavaScript-Fehler auf.

Zusammenfassung


Die in den Diagrammen dargestellten Ergebnisse sprechen für sich. Wenn Sie ein anderes Framework oder eine andere Anwendung in den Test einbeziehen möchten, lassen Sie es uns wissen! Kommentare zum Test sind willkommen.

Jetzt auch beliebt: