Hinweis: Der folgende Artikel hilft Ihnen dabei: PHP-Performance-Benchmarking für CMS, E-Commerce …
Die letzten zwei Jahre brachten uns nicht nur Lockdowns, Angst und Unsicherheit. Auch für uns PHP-Entwickler waren es eine aufregende Zeit. Die Geschwindigkeit, mit der sich unsere Sprache entwickelt, ist erstaunlich.
Zum Zeitpunkt des Verfassens dieses Artikels war die Website PHP der richtige Weg erwähnt PHP 8.1 als empfohlene Version für neue Projekte. Sehen Sie sich diesen Artikel an, um mehr über die neuen Funktionen zu erfahren, die Sie nutzen können.
In diesem Artikel teilen wir unsere ausführlichen Leistungsbenchmarks für verschiedene PHP-Versionen und Plattformen, damit Sie wissen, was Sie nach einem Upgrade erwartet.
Wir haben 5 verschiedene PHP-Versionen in 17 PHP-basierten CMS verglichen, darunter WordPress, Drupal, Joomla, Magento, SilverStripe und Modx sowie Frameworks wie Laravel, Symfony und mehr.
Lass uns anfangen!
Der Stand von PHP
Bevor wir auf die Zahlen eingehen, finden Sie hier einen Kontext zu dem, was Sie gleich lesen werden.
Glauben Sie nicht dem Twitter-Hype, dass PHP tot sei. Die Wahrheit ist, dass PHP immer noch eine der am weitesten verbreiteten Programmiersprachen ist, insbesondere wenn es um die Webentwicklung geht.
Das liegt vor allem daran, dass WordPress auf PHP aufbaut und ein großer Teil des Webs heutzutage mit WordPress betrieben wird.
Laut W3TechsPHP wird von 77,4 % aller Websites verwendet, deren serverseitige Programmiersprache sie kennen. Wir würden sagen, das ist ein ziemlich guter Hinweis auf das Leben, nicht wahr?
Aber das ist nicht alles. Während viele PHP-Kritiker argumentieren werden, dass PHP nur für die Wartung von Legacy-Code beibehalten wird, ist dies eine umstrittene Behauptung für diejenigen, die die Vorgänge in der Community im Auge behalten.
Allein die Tatsache, dass die PHP-Grundlage Ende 2021 das Licht der Welt erblickte und von großen Playern der Branche unterstützt wird, ist ein Beweis dafür, dass PHP auf lange Sicht bestehen bleibt.
Aber wir können den Elefanten im Raum nicht wirklich verbergen: Die meisten PHP-basierten Websites verwenden immer noch veraltete und nicht unterstützte Versionen der Sprache, was Sicherheitsrisiken und eine nicht optimale Leistung mit sich bringt.
Warum ist das? Ein Grund könnte die konservative Denkweise vieler IT-Manager sein, die aus der Sorge um Abwärtskompatibilitätsprobleme und nicht so gut getestete Releases resultiert.
Gleichzeitig sind sich alle einig, dass es kein Wachstum gibt, wenn es keine Innovation gibt. Die richtige Entscheidung besteht also nicht darin, die Dinge für immer so zu belassen, wie sie sind, sondern darin, die entsprechenden Migrationen sorgfältig zu planen und durchzuführen.
Bevor Sie eine so wichtige Entscheidung treffen, sollten Sie die Vorteile abwägen, die sich daraus ergeben.
Und genau das gibt Ihnen dieser Artikel: einen Vorgeschmack auf die Leistungsverbesserung, die Sie durch die Aktualisierungsbemühungen erleben werden.
Hosten Sie PHP-Websites ganz einfach [Starts at $10 Credit]
- Kostenlose Inszenierung
- Kostenloses Backup
- PHP 8.0
- Unbegrenzte Websites
VERSUCH'S JETZT
PHP-Benchmarks (2022)
Jedes Mal, wenn eine neue Version einer Programmiersprache herauskommt, bringt sie neue Funktionen, Fehlerbehebungen und im Allgemeinen effizientere Möglichkeiten zum Erreichen derselben Ziele mit sich.
Im Fall von PHP hat sich die Geschwindigkeit, mit der dies geschieht, seit Version 7 beschleunigt. Dies hat es Entwicklern ermöglicht, mit weniger Aufwand sichereren, wartbareren und robusteren Code zu schreiben.
Während dies sicherlich wünschenswerte Funktionen einer Programmiersprache sind, ist der einzige schwierige Vergleich, der durchgeführt werden kann, der der Leistung: Wie lange dauert es, bis zwei PHP-Versionen denselben Code ausführen? Das werden wir in diesem Artikel untersuchen.
Um fair zu sein, konzentrieren wir uns nicht nur auf ein bestimmtes Tool, sondern auf eine Auswahl einiger der beliebtesten CMS und Frameworks mit der Hoffnung, so viel wie möglich aus dem PHP-Universum abzudecken.
Bedenken Sie jedoch, dass nicht jede Plattform jede PHP-Version unterstützt.
Unsere Methodik
Wir haben jede getestete URL einem Benchmarking unterzogen, wobei über einen Zeitraum von 60 Sekunden 100 Anfragen pro Sekunde generiert wurden.
Wir haben die durchschnittliche Reaktionszeit gemessen Loader.io.
Hardware-Spezifikationen
Details zu unserer Testumgebung finden Sie unten:
Maschine: 2 Kernprozessoren, 4 GB RAM, 80 GB NVMe-Festplatte.
Betriebssystem: Debian 4.19.208-1
Webserver: Apache/2.4.51
Datenbank: MariaDB 0.4.20-MariaDB-1:10.4.20+maria~buster-log
PHP-Versionen: 7.2, 7.3, 7.4, 8.0, 8.1
Seiten-Caching: Auf allen Plattformen und Konfigurationen deaktiviert.
OPcache: OPcache wurde auf allen Plattformen und Konfigurationen mit den folgenden Einstellungen aktiviert:
opcache.blacklist_filename => kein Wert => kein Wert opcache.consistency_checks => 0 => 0 opcache.dups_fix => Off => Off opcache.enable => On => On opcache.enable_cli => Off => Off opcache.enable_file_override => Aus => Aus opcache.error_log => kein Wert => kein Wert opcache.file_cache => kein Wert => kein Wert opcache.file_cache_consistency_checks => Ein => Ein opcache.file_cache_only => Aus => Aus opcache.file_update_protection = > 2 => 2 opcache.force_restart_timeout => 180 => 180 opcache.huge_code_pages => Off => Off opcache.interned_strings_buffer => 8 => 8 opcache.lockfile_path => /tmp => /tmp opcache.log_verbosity_level => 1 = > 1 opcache.max_accelerated_files => 10000 => 10000 opcache.max_file_size => 0 => 0 opcache.max_wasted_percentage => 5 => 5 opcache.memory_consumption => 128 => 128 opcache.opt_debug_level => 0 => 0 opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF opcache.preferred_memory_model => kein Wert => kein Wert opcache.preload => kein Wert => kein Wert opcache.preload_user => kein Wert => kein Wert opcache.protect_memory => Off => Opcache aus. strict_api => kein Wert => kein Wert opcache.revalidate_freq => 2 => 2 opcache.revalidate_path => Off => Off opcache.save_comments => On => On opcache.use_cwd => On => On opcache.validate_permission => Aus => Aus opcache.validate_root => Aus => Aus opcache.validate_timestamps => Ein => Ein
Die Ergebnisse aller von uns getesteten CMS
Beginnen wir mit der Analyse der Leistung der einzelnen PHP-Versionen, wenn darüber ein CMS verwendet wird.
WordPress 6.0
WordPress Macht über 40 % aller Websites im Internet. Es wird hauptsächlich zum Erstellen von Blogs verwendet und ist ein kostenloses Open-Source-Tool.
Für den Anfang haben wir es getestet Entwicklungsversion: 6.0 RC 3.
Ergebnisse:
In Bezug auf die Leistung gibt es keinen großen Unterschied zwischen den PHP-Versionen 7.2 bis 7.4, aber bei der Umstellung auf 8.0 ändern sich die Dinge, da die Antwortzeit zunimmt. Mit dem PHP 8.1-Update verkürzt sich die Reaktionszeit jedoch drastisch, was darauf hindeutet, dass WordPress 6.0 RC-3 für das Upgrade vorbereitet ist.
Hierarchie der Anzahl der Erfolgsantworten (niedriger ist besser): 8,1 > 7,3 > 7,2 > 7,4 > 8,0
WordPress Multisite
WordPress hat eine Funktion namens Multisite, was die Erstellung mehrerer Websites in einer einzigen WordPress-Instanz ermöglicht. Durch die Aktivierung können Benutzer ein Netzwerk einzelner Websites über ein Control Panel verwalten.
In unserem Fall haben wir ein Netzwerk aus drei Websites für eine WordPress 6.0 RC-3-Installation erstellt.
Ergebnisse:
Der Fall von WordPress Multisite ähnelt dem von Nicht-Multisite-WP, daher ist es am besten, PHP 8.1 zu verwenden, da die Antwortzeiten erheblich kürzer sind als bei den älteren Versionen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,1 > 7,2 > 7,3 > 7,4 > 8,0
Joomla 4.1.4
Joomla ist ein weiteres sehr beliebtes CMS im PHP-Ökosystem. Im Gegensatz zu WordPress richtet sich Joomla an erfahrenere Benutzer, die mehr Anpassungsmöglichkeiten suchen.
Ergebnisse:
Betrachtet man die obige Grafik, hat PHP 8.0 einen erheblichen Vorteil gegenüber seinen Vorgängern und bietet sogar bessere Reaktionszeiten als das neuere Upgrade, also PHP 8.1.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 8,1 > 7,4 > 7,3 > 7,2
Silberstreifen
SilverStripe ist ein neueres CMS als WordPress. Und Silberstreifen bietet mehr Anpassungsoptionen für anspruchsvollere Benutzer.
Ergebnisse:
Die durchschnittliche Reaktionszeit mit PHP 7.2 auf SilverStripe ist deutlich höher als bei allen Nachfolgern. Wie aus der Grafik hervorgeht, sinken die Raten mit jedem Update, sodass mit PHP 8.0 die besten Ergebnisse erzielt werden.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 8,1 > 7,4 > 7,3 > 7,2
Nichts ist so einfach wie die Bereitstellung von PHP-Apps in der Cloud
Mit DreamHost können Sie Ihre PHP-Apps in nur wenigen Minuten auf verwalteten Cloud-Servern zum Laufen bringen.
MODX
MODX ist ein CMS, das auf Sicherheit und Leistung ausgelegt ist. Der MODX bietet auch die meisten Funktionen von WordPress oder SilverStripe.
Ergebnisse:
Bei ModX unterscheiden sich die PHP-Versionen nicht wesentlich in den durchschnittlichen Antwortzeiten. Aufgrund der damit verbundenen weiteren Vorteile empfehlen wir dennoch, auf aktuellere Versionen umzusteigen. Wenn Sie die besten Reaktionszeiten wünschen, ist 8,0 der klare Gewinner.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 8,1 > 7,2 > 7,4 > 7,3
Tippfehler3
Typo3 ist ein für den Unternehmenseinsatz konzipiertes CMS, das eine einfache Skalierung ermöglicht.
In diesem Fall ist die Tippfehler3 Der Vergleich kann nur für PHP-Versionen über 7.3 durchgeführt werden.
Ergebnisse:
Wenn Sie eine auf Typo3 basierende Website betreiben, sollten Sie aufgrund der moderneren Funktionen und der verbesserten Leistung ein Upgrade von früheren Versionen auf PHP 8.0 oder 8.1 in Betracht ziehen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,1 > 8,0 > 7,4
Craft CMS 3.7.30.1
CraftCMS ist ein CMS für fortgeschrittene Benutzer, die ihre Funktionen durch die Erstellung ihres eigenen Codes anpassen können. Zum Zeitpunkt dieses Schreibens CraftCMS unterstützt keine PHP-Versionen über 7.4.
Ergebnisse:
Bei Craft CMS ist die Umstellung auf PHP 7.4 ratsam, obwohl dadurch die Leistung möglicherweise nicht wesentlich gesteigert wird. Da Craft CMS die neuesten PHP-Versionen (8.0 und 8.1) nicht unterstützt, ist die Verwendung von PHP 7.4, wie in der Dokumentation empfohlen, optimal. Darüber hinaus sollten Sie für ein optimierteres Erlebnis die Hosting-Optionen von Craft CMS in Betracht ziehen. Wenn Sie nach Alternativen suchen, die die neuesten PHP-Versionen unterstützen, könnte ExpressionEngine Hosting ebenfalls eine gute Wahl sein, da es robuste und aktuelle verwaltete Hosting-Lösungen bietet.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 7,4 > 7,2 > 7,3.
OktoberCMS 2.0
OctoberCMS ist ein CMS, das mit dem erstellt wurde Laravel-Framework und richtet sich an Entwickler.
Ergebnisse:
OctoberCMS 2.0 unterstützt keine Installationen vor 8.0. Wenn wir die Reaktionszeiten von vergleichen OktoberCMS auf PHP 8.0 und 8.1, dann wird empfohlen, ersteres zu verwenden.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 8,1
Drupal
Drupal ist ein Allzweck-CMS. Es wird häufig in Unternehmensumgebungen eingesetzt, um Intranets, Wissensdatenbanken und Online-Geschäftszusammenarbeit zu betreiben.
Die minimale PHP-Version für Drupal zum Zeitpunkt des Verfassens dieses Artikels ist 7.3.
Ergebnisse:
Mit DrupalWir empfehlen, bei PHP 8.0 zu bleiben, wenn Sie Wert auf durchschnittliche Antwortzeiten legen. Ein Upgrade auf 8.1 wäre in diesem Fall nachteilig, da sich die Antwortzeiten im Vergleich zu den Vorgängerversionen exponentiell erhöhen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 7,4 > 7,3 > 8,1
E-Commerce-Lösungen
Die zweite Anwendungskategorie, die wir analysieren werden, sind E-Commerce-Lösungen, ein weiterer sehr beliebter Anwendungsfall für PHP.
WordPress 6.0 + WooCommerce 6.5
WooCommerce ist eine sehr weit verbreitete WordPress-Erweiterung, die den Online-Verkauf ermöglicht. Wir haben Version 6.5 auf einer WordPress 6.0 RC-3-Installation getestet.
Ergebnisse:
Die durchschnittlichen Antwortzeiten vor der PHP 8.1-Version sind bei allen Versionen nahezu gleich. Ein Upgrade auf PHP 8.1 wird für WordPress 6.0 und WooCommerce 6.5 dringend empfohlen, um Leistungsverbesserungen und kurze Antwortzeiten zu erzielen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,1 > 7,4 > 8,0 > 7,3 > 7,2
Magento 2.4.3
Magento ist eine solide und voll ausgestattete E-Commerce-Plattform. Im Gegensatz zu WooCommerce basiert es nicht auf WordPress.
Der Einsatz erfolgt hauptsächlich bei mittelgroßen bis großen Online-Shops, die komplexe Vorgänge abwickeln.
Die minimale PHP-Version, die zum Ausführen von Magento 2.4.3 erforderlich ist, ist 7.4.
Getestete URL: /
Ergebnisse:
Für Magento 2.4.3 empfehlen wir für kurze Antwortzeiten die Wahl von PHP 8.0.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 7,4
PrestaShop
PrestaShop ist im Gegensatz zu Magento eine E-Commerce-Plattform, die sich an Einsteiger richtet.
Zum Zeitpunkt des Verfassens dieses Artikels unterstützt PrestaShop PHP bis zur Version 7.4.
Ergebnisse:
Prestashop Scheint unter PHP 7.3 und PHP 7.4 etwas besser zu laufen als unter 7.2 und unterstützt PHP 8.x+-Versionen noch nicht.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 7,3 > 7,4 > 7,2
Rahmenwerke
Die letzte Station unserer Reise ist die Analyse einiger beliebter Frameworks (Allzweckbibliotheken, die zum Erstellen benutzerdefinierter, umfangreicher Anwendungen verwendet werden).
In diesem Fall haben wir eine Instanz des von jedem bereitgestellten Standardprojekts gemountet und unsere Tests ausgeführt.
Laminas (Zend Framework)
Laminas ist ein PHP MVC Framework. Die Codebasis hieß früher Zend Framework, aber das Projekt wurde vor einigen Jahren an die Linux Foundation übertragen und ist seitdem ein von der Community getragenes Projekt.
Zum Zeitpunkt des Verfassens dieses Artikels unterstützt Laminas die PHP-Version ab 7.4.
Ergebnisse:
Der Fall für die Lamellen Frameworks ist etwas anspruchsvoller, da die meisten Leistungsprobleme in den darauf aufbauenden Anwendungen und nicht in den Frameworks selbst auftreten.
Bei maßgeschneiderten Anwendungen ist der Umstieg auf PHP 8.0 sehr sinnvoll, da sich dadurch neue Möglichkeiten eröffnen, Ihre Kunden besser zu bedienen. Wir empfehlen kein Upgrade auf 8.1, da die Grafik auf relativ höhere Reaktionszeiten für diese Version schließen lässt.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 7,4 > 8,1
Verbessern Sie die Geschwindigkeit Ihrer PHP-App um 300 %
DreamHost bietet Ihnen dedizierte Server mit SSD-Speicher, individueller Leistung, einem optimierten Stack und mehr für 300 % schnellere Ladezeiten.
Laravel
Laravel ist ein PHP-MVC-Framework, das einfach zu erlernen und zu implementieren ist. Laravel ist derzeit eines der am weitesten verbreiteten und beliebtesten PHP-Frameworks.
Getestete URL: /
Ergebnisse:
Die Grafik zeigt deutlich, wie sich die Antwortzeiten nach PHP 7.3 verkürzen und unter PHP 8.0 die besten Ergebnisse liefern.
Ähnlich wie bei Laminas sollte Ihre Entscheidung für ein Upgrade ausschließlich von Leistungsaspekten und nicht von den neuen Funktionen, die die Sprache mit sich bringt, geleitet werden.
Hierarchie der Erfolgsantwortanzahl (höher ist besser): 8,0 > 7,2 > 7,4 > 7,3
Symfony
Symfony ist ein FullStack-PHP-Framework, das auf den Prinzipien von SOLID und anderen Best Practices der Branche basiert. Für Neueinsteiger kann es etwas anspruchsvoller sein, bietet aber gleichzeitig eine Umgebung, die für die langfristige Anwendungswartung geeignet ist.
Ergebnisse:
Der Fall von Symfony unterscheidet sich nicht sehr von den anderen in diesem Artikel analysierten Frameworks.
Der Unterschied besteht darin, dass Symfony neue Sprachmöglichkeiten schnell nutzt, um seine Codebasis zu verbessern. Daher würden wir für beste Leistungsergebnisse und kurze Antwortzeiten ein Upgrade auf PHP 8.0 empfehlen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 7,4 > 7,3 > 7,2
CodeIgniter
CodeIgniter ist ein einfaches PHP-MVC-Framework, das auf eine schnelle Anwendungsentwicklung abzielt. PHP 8.1 funktioniert am schnellsten mit CodeIgniterund führt im Vergleich zu PHP 8.0 8,48 % mehr Anfragen pro Sekunde aus.
Ergebnisse:
Bei CodeIgniter sind die durchschnittlichen Antwortzeiten für alle PHP-Versionen vor 8.1 ähnlich. Wir empfehlen daher, sich für 8.0 zu entscheiden, um kürzere Antwortzeiten und bessere Gesamtleistungsergebnisse zu erzielen.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 8,1 > 7,4 > 7,3 > 7,2
Yii
Yii ist ein PHP-MVC-Framework, das auf Leistung und Benutzerfreundlichkeit ausgelegt ist.
Ergebnisse:
Wie bei CodeIgniter sind die durchschnittlichen Antwortzeiten mit Yii für 7.2 bis 8.0 ähnlich und steigen mit PHP 8.1. Wir würden daher empfehlen, die PHP 8.0-Version zu wählen Yii.
Hierarchie der Erfolgsantwortanzahl (niedriger ist besser): 8,0 > 7,4 > 7,3 > 7,2 > 8,1
Abschluss
Bedenken Sie, dass die Leistung nur ein Aspekt ist, der bei der Erwägung eines Upgrades berücksichtigt werden muss. Und obwohl es definitiv ein wichtiger Faktor ist, sollte es nicht der einzige Faktor sein, der Ihre Entscheidung beeinflusst.
Tatsächlich können Leistungsprobleme auf Infrastrukturebene gelöst werden, indem Tools wie z. B. genutzt werden Lack oder Redis.
Achten Sie auch auf die neuen Funktionen der Sprache. Dies trägt dazu bei, mit weniger Aufwand leistungsfähigere Anwendungen zu erstellen und die Sicherheitsverbesserungen zu nutzen, die mit neueren Sprachversionen einhergehen.
Und ja, die Migration ist keine triviale Aufgabe, aber auch hier stehen Ihnen in der PHP-Community viele Ressourcen zur Verfügung, die Ihnen dabei helfen können, Ihre Erfolgschancen zu maximieren, wie z Rektor.
Supercharged Managed PHP Hosting – Verbessern Sie die Geschwindigkeit Ihrer PHP-App um 300 %
In jedem Fall besteht der sicherste Weg, diese Art von Upgrade durchzuführen, darin, zunächst Ihren aktuellen Server auf einen privat zugänglichen Server zu klonen (normalerweise als Staging-Server bezeichnet). Nehmen Sie dann die Änderungen am Code relativ langsam vor und testen Sie, ob alles wie erwartet funktioniert. Beheben Sie alle Probleme, auf die Sie stoßen könnten, und stufen Sie diesen Server, sobald Sie mit den Ergebnissen zufrieden sind, entweder in den Produktionsmodus um (ändern Sie die DNS-Definitionen so, dass sie auf die neue IP verweisen). Wenn dies keine praktikable Option ist, replizieren Sie die Änderungen auf dem ursprünglichen Server.