Technologie Gadgets, SEO Tipps, Geld Verdienen mit WEB!

Benchmarking delle prestazioni PHP su CMS, eCommerce…

Benchmarking delle prestazioni PHP su CMS, eCommerce...

Gli ultimi due anni non ci hanno portato solo lockdown, ansia e incertezza. Anche per noi sviluppatori PHP è stato un periodo entusiasmante. Il ritmo con cui la nostra lingua si sta evolvendo è sorprendente.

Al momento in cui scrivo, il sito PHP nel modo giusto menziona PHP 8.1 come la versione consigliata da utilizzare per nuovi progetti. Dai un’occhiata a questo articolo per approfondire le nuove funzionalità che puoi utilizzare.

In questo articolo condivideremo i nostri benchmark approfonditi delle prestazioni per varie versioni e piattaforme di PHP in modo che tu sappia cosa aspettarti dopo un aggiornamento.

Abbiamo confrontato 5 diverse versioni di PHP su 17 CMS basati su PHP, tra cui WordPress, Drupal, Joomla, Magento, SilverStripe e Modx, e framework come Laravel, Symfony e altri.

Iniziamo!

Lo stato di PHP

Prima di entrare nei numeri, ecco un po’ di contesto per ciò che stai per leggere.

Non credere all’hype di Twitter sulla morte di PHP. La verità è che PHP è ancora uno dei linguaggi di programmazione più utilizzati, soprattutto quando si parla di sviluppo web.

Ciò è dovuto principalmente al fatto che WordPress è costruito su PHP e al giorno d’oggi gran parte del web è alimentato da WordPress.

Secondo W3Tech, PHP è utilizzato dal 77,4% di tutti i siti web di cui conoscono il linguaggio di programmazione lato server. Diremmo che è un buon indicatore della vita, non è vero?

Ma non è tutto. Anche se molti detrattori di PHP sostengono che PHP viene mantenuto solo per la manutenzione del codice legacy, è un’affermazione discutibile per coloro che tengono d’occhio ciò che accade nella comunità.

Proprio il fatto che Fondazione PHP ha visto la luce entro la fine del 2021 ed è supportato da grandi attori del settore, è la prova che PHP è qui per un lungo periodo.

Ma non possiamo davvero nascondere l’elefante nella stanza: la maggior parte dei siti Web basati su PHP utilizzano ancora versioni obsolete e non supportate del linguaggio, il che implica rischi per la sicurezza e prestazioni non ottimali.

Perchè è questo? Ebbene, uno dei motivi potrebbe essere la mentalità conservatrice condivisa da molti manager IT, che nasce dalle preoccupazioni relative ai problemi di compatibilità con le versioni precedenti e alle versioni non così ben testate.

Allo stesso tempo, tutti concordano sul fatto che se non c’è innovazione non c’è crescita. Quindi la decisione giusta non è quella di lasciare le cose così come sono per sempre, ma piuttosto di pianificare ed eseguire attentamente le migrazioni appropriate.

Prima di prendere una decisione così importante, dovresti valutare i benefici che otterrai portandola fino in fondo.

Ed è ciò che ti offre questo articolo: un assaggio del miglioramento delle prestazioni che noterai grazie agli sforzi di aggiornamento.

Ospita siti Web PHP con facilità [Starts at Credit]

  • Allestimento gratuito
  • Backup gratuito
  • PHP8.0
  • Siti Web illimitati

PROVA ORA

Benchmark PHP (2022)

Ogni volta che esce una nuova versione di un linguaggio di programmazione, apporta nuove funzionalità, correzioni di bug e, in generale, modi più efficienti per raggiungere gli stessi obiettivi.

Nel caso di PHP, il ritmo con cui ciò è avvenuto è aumentato a partire dalla versione 7. Ciò ha consentito agli sviluppatori di scrivere codice più sicuro, manutenibile e robusto con meno sforzo.

Sebbene queste siano certamente caratteristiche desiderabili di un linguaggio di programmazione, l’unico confronto difficile che si può fare è quello relativo alle prestazioni: quanto tempo impiegano due versioni PHP per eseguire lo stesso codice? Questo è ciò che esploreremo in questo articolo.

Per essere onesti, non ci concentreremo solo su uno strumento specifico ma piuttosto su una selezione di alcuni dei CMS e framework più popolari con la speranza di coprire il più possibile l’universo PHP.

Tieni presente che non tutte le piattaforme supportano tutte le versioni di PHP.

La nostra metodologia

Abbiamo confrontato ogni URL testato che genera 100 richieste al secondo in un periodo di 60 secondi.

Abbiamo misurato il tempo medio di risposta Caricatore.io.

Specifiche hardware

Di seguito puoi trovare i dettagli del nostro ambiente di test:

Macchina: 2 processori Core, 4 GB di RAM, disco NVMe da 80 GB.
Sistema operativo: Debian 4.19.208-1
Server web: Apache/2.4.51
Banca dati: MariaDB 0.4.20-MariaDB-1:10.4.20+maria~buster-log
Versioni PHP: 7.2, 7.3, 7.4, 8.0, 8.1
Cache della pagina: Disabilitato su tutte le piattaforme e configurazioni.
Cache OP: Abilitato OPcache su tutte le piattaforme e configurazioni utilizzando le seguenti impostazioni:

opcache.blacklist_filename => nessun valore => nessun valore opcache.consistency_checks => 0 => 0 opcache.dups_fix => Disattivato => Disattivato opcache.enable => Attivato => Attivato opcache.enable_cli => Disattivato => Disattivato opcache.enable_file_override => Spento => Spento opcache.error_log => nessun valore => nessun valore opcache.file_cache => nessun valore => nessun valore opcache.file_cache_consistency_checks => Acceso => ​​Acceso opcache.file_cache_only => Spento => Spento opcache.file_update_protection = > 2 => 2 opcache.force_restart_timeout => 180 => 180 opcache.huge_code_pages => Disattivato => Disattivato 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 => nessun valore => nessun valore opcache.preload => nessun valore => nessun valore opcache.preload_user => nessun valore => nessun valore opcache.protect_memory => Off => Off opcache. restring_api => nessun valore => nessun valore opcache.revalidate_freq => 2 => 2 opcache.revalidate_path => Disattivato => Disattivato opcache.save_comments => Attivato => Attivato opcache.use_cwd => Attivato => Attivato opcache.validate_permission => Spento => Spento opcache.validate_root => Spento => Spento opcache.validate_timestamps => Acceso => ​​Acceso

I risultati di ogni CMS che abbiamo testato

Iniziamo ad analizzare le prestazioni di ciascuna versione di PHP quando si utilizza un CMS sopra.

WordPress 6.0

WordPress poteri sopra Il 40% di tutti i siti web su internet. Viene utilizzato principalmente per la creazione di blog ed è uno strumento gratuito e open source.

Per cominciare, l’abbiamo testato versione di sviluppo: 6.0 RC 3.

Risultati:

In termini di prestazioni, non c’è molta differenza tra le versioni PHP dalla 7.2 alla 7.4, ma le cose cambiano quando si passa alla 8.0 poiché il tempo di risposta aumenta. Tuttavia, con l’aggiornamento PHP 8.1, il tempo di risposta diminuisce drasticamente, indicando che WordPress 6.0 RC-3 è pronto per l’aggiornamento.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,1 > 7,3 > 7,2 >7,4 > 8,0

WordPress Multisito

WordPress ha una funzionalità chiamata Multisito, che consente la creazione di più siti Web in un’unica istanza di WordPress. Attivandolo, gli utenti possono gestire una rete di singoli siti web da un unico Pannello di Controllo.

Nel nostro caso, abbiamo creato una rete di tre siti Web per un’installazione WordPress 6.0 RC-3.

Risultati:

Il caso di WordPress Multisite è simile a quello di WP non multisito, quindi è meglio Utilizzare PHP 8.1 poiché i tempi di risposta sono notevolmente inferiori rispetto alle versioni precedenti.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,1> 7,2 > 7,3 > 7,4 > 8,0

Joomla 4.1.4

Joomla è un altro CMS molto popolare nell’ecosistema PHP. A differenza di WordPress, Joomla si rivolge agli utenti più esperti che cercano maggiori opzioni di personalizzazione.

Risultati:

Considerando il grafico qui sopra, PHP 8.0 ha un vantaggio significativo rispetto ai suoi predecessori e offre anche tempi di risposta migliori rispetto all’aggiornamento più recente, ovvero PHP 8.1.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 8,1 > 7,4 > 7,3 > 7,2

SilverStripe

SilverStripe è un CMS più recente di WordPress. E Striscia d’argento offre più opzioni di personalizzazione per gli utenti più sofisticati.

Risultati:

Il tempo di risposta medio con PHP 7.2 su SilverStripe è piuttosto superiore a quello di tutti i suoi successori. Come evidente dal grafico, la velocità diminuisce ad ogni aggiornamento, dando i migliori risultati con PHP 8.0.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 8,1 > 7,4 > 7,3 > 7,2

Niente è così facile come distribuire app PHP sul cloud

Con DreamHost, puoi avere le tue app PHP attive e funzionanti su server cloud gestiti in pochi minuti.

MODX

MODX è un CMS progettato per sicurezza e prestazioni. IL MODX offre la maggior parte delle funzionalità presenti anche in WordPress o SilverStripe.

Risultati:

Con ModX, le versioni PHP non differiscono significativamente nei tempi medi di risposta. Consigliamo comunque di passare a versioni più attuali a causa di tutti gli altri vantaggi ad esse associati. Se desideri i migliori tempi di risposta, allora 8.0 è il chiaro vincitore.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 8,1 > 7,2 > 7,4 > 7,3

Errore di battitura3

Typo3 è un CMS progettato per l’utilizzo aziendale che consente una facile scalabilità.

In questo caso, il Errore di battitura3 il confronto può essere fatto solo per le versioni PHP superiori alla 7.3.

Risultati:

Se gestisci un sito web basato su Typo3, dovresti prendere in considerazione l’aggiornamento a PHP 8.0 o 8.1 dalle versioni precedenti grazie alle sue funzionalità più moderne e alle prestazioni migliorate.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8.1 > 8.0 > 7.4

Crea CMS 3.7.30.1

CraftCMS è un CMS rivolto ad utenti avanzati che possono personalizzarne le funzionalità creando il proprio codice. Al momento in cui scrivo CraftCMS non supporta le versioni php superiori alla 7.4.

Risultati:

Con Craft CMS, è consigliabile passare a PHP 7.4, anche se potrebbe non aumentare significativamente le prestazioni. Poiché Craft CMS non supporta le ultime versioni di PHP (8.0 e 8.1), l’utilizzo di PHP 7.4, come raccomandato nella loro documentazione, è ottimale. Inoltre, per un’esperienza più semplificata, valuta la possibilità di esplorare le opzioni di hosting di Craft CMS. Allo stesso modo, se stai cercando alternative che supportino le ultime versioni di PHP, ExpressionEngine Hosting potrebbe essere una scelta praticabile, offrendo soluzioni di hosting gestito robuste e aggiornate.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 7,4 > 7,2 > 7,3.

OttobreCMS 2.0

OctoberCMS è un CMS creato utilizzando il Quadro Laravel ed è rivolto agli sviluppatori.

Risultati:

OctoberCMS 2.0 non supporta installazioni precedenti alla 8.0. Se confrontiamo i tempi di risposta di OttobreCMS su PHP 8.0 e 8.1, si consiglia di utilizzare il primo.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 8,1

Drupal

Drupal è un CMS di uso generale. È ampiamente utilizzato negli ambienti aziendali per potenziare intranet, basi di conoscenza e collaborazione aziendale online.

La versione minima di PHP per Drupal al momento in cui scrivo è 7.3.

Risultati:

Con Drupal, ti consigliamo di attenersi a PHP 8.0 se dai priorità ai tempi di risposta medi. Un aggiornamento alla 8.1 in questo caso sarebbe dannoso, poiché i tempi di risposta aumentano esponenzialmente rispetto alle versioni precedenti.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 7,4 > 7,3 > 8,1

Soluzioni di e-commerce

La seconda categoria di applicazioni che analizzeremo sono le soluzioni di eCommerce, un altro caso d’uso molto popolare per PHP.

WordPress 6.0 + WooCommerce 6.5

WooCommerce è un’estensione WordPress molto utilizzata che consente la vendita online. Abbiamo testato la versione 6.5 su un’installazione WordPress 6.0 RC-3.

Risultati:

I tempi medi di risposta prima della versione PHP 8.1 sono quasi simili per tutte le versioni. L’aggiornamento a PHP 8.1 è altamente raccomandato per WordPress 6.0 e WooCommerce 6.5 per miglioramenti delle prestazioni e tempi di risposta bassi.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,1 > 7,4 > 8,0 > 7,3 > 7,2

Magento 2.4.3

Magento è una Piattaforma di eCommerce solida e completa. A differenza di WooCommerce, non è basato su WordPress.

Il suo utilizzo è principalmente per negozi online di medie e grandi dimensioni che gestiscono operazioni complesse.

La versione PHP minima necessaria per eseguire Magento 2.4.3 è 7.4.

URL testato: /

Risultati:

Per Magento 2.4.3, consigliamo di optare per PHP 8.0 per tempi di risposta bassi.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 7,4

PrestaShop

PrestaShop è una piattaforma di eCommerce che si rivolge agli utenti principianti, a differenza di Magento.

Al momento in cui scrivo, PrestaShop supporta PHP fino alla versione 7.4.

Risultati:

Prestashop sembra funzionare leggermente meglio su PHP 7.3 e PHP 7.4 rispetto a 7.2 e non supporta ancora le versioni PHP 8.x+.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 7.3 > 7.4 > 7.2

Quadri

La tappa finale del nostro viaggio è l’analisi di alcuni dei framework più diffusi (librerie di uso generale utilizzate per creare applicazioni personalizzate).

In questo caso, ciò che abbiamo fatto è stato montare un’istanza del progetto predefinito fornito da ciascuno ed eseguire i nostri test.

Lamine (Quadro Zend)

Laminas è un framework PHP MVC. Il codice base è quello che una volta si chiamava Zend Framework, ma il progetto è stato trasferito alla Linux Foundation alcuni anni fa e da allora è stato uno sforzo guidato dalla comunità.

Al momento in cui scrivo, Laminas supporta la versione PHP a partire dalla 7.4.

Risultati:

Il caso per il Lamine framework è un po’ più impegnativo poiché la maggior parte dei problemi di prestazioni si riscontrano nelle applicazioni costruite su di essi piuttosto che nei framework stessi.

Nel caso di applicazioni personalizzate, il passaggio a PHP 8.0 ha molto senso poiché aprirà nuove possibilità per servire meglio i tuoi clienti. Non consigliamo l’aggiornamento alla 8.1, poiché il grafico suggerisce tempi di risposta relativamente più elevati su quella versione.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 7,4 > 8,1

Migliora la velocità della tua app PHP del 300%

DreamHost ti offre server dedicati con archiviazione SSD, prestazioni personalizzate, uno stack ottimizzato e altro ancora per tempi di caricamento più rapidi del 300%.

Laravel

Laravel è un framework PHP MVC progettato per essere facile da apprendere e implementare. Laravel è attualmente uno dei framework PHP più utilizzati e amati.

URL testato: /

Risultati:

Il grafico mostra chiaramente come diminuiscono i tempi di risposta dopo PHP 7.3 e danno i migliori risultati su PHP 8.0.

Similmente a quanto abbiamo detto su Laminas, la tua decisione di aggiornare dovrebbe essere guidata esclusivamente da considerazioni sulle prestazioni piuttosto che dalle nuove funzionalità introdotte dal linguaggio.

Gerarchia del conteggio delle risposte di successo (più alto è meglio è): 8,0 > 7,2 > 7,4 > 7,3

Symfony

Symfony è un framework PHP FullStack costruito attorno ai principi di SOLID e ad altre best practice del settore. Può essere un po’ più impegnativo per i nuovi arrivati ​​ma, allo stesso tempo, fornisce un ambiente adatto alla manutenzione delle applicazioni a lungo termine.

Risultati:

Il caso di Symfony non si discosta molto dagli altri framework analizzati in questo articolo.

La differenza qui è che Symfony sfrutta rapidamente le nuove possibilità linguistiche per migliorare la propria base di codice, quindi consigliamo l’aggiornamento a PHP 8.0 per ottenere migliori risultati in termini di prestazioni e tempi di risposta bassi.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 7,4 > 7,3 > 7,2

CodeIgniter

CodeIgniter è un semplice framework PHP MVC finalizzato allo sviluppo rapido di applicazioni. PHP 8.1 funziona più velocemente con CodeIgnitereseguendo l’8,48% di richieste in più al secondo rispetto a PHP 8.0.

Risultati:

Con CodeIgniter, i tempi di risposta medi sono simili per tutte le versioni PHP precedenti alla 8.1, quindi consigliamo di optare per la 8.0 per tempi di risposta bassi e migliori risultati in termini di prestazioni complessive.

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 8,1 > 7,4 > 7,3 > 7,2

Yii è un framework PHP MVC progettato per prestazioni e facilità d’uso.

Risultati:

Come CodeIgniter, i tempi di risposta medi con Yii sono simili da 7.2 a 8.0 e aumentano con PHP 8.1. Pertanto, consigliamo di scegliere la versione PHP 8.0 per .

Gerarchia del conteggio delle risposte di successo (inferiore è migliore): 8,0 > 7,4 > 7,3 > 7,2 > 8,1

Conclusione

Tieni presente che le prestazioni sono solo un aspetto da prendere in considerazione quando si considera un aggiornamento. E sebbene sia sicuramente importante, non dovrebbe essere l’unico fattore che guida la tua decisione.

Infatti, i problemi prestazionali possono essere risolti a livello infrastrutturale, sfruttando strumenti come Vernice o Redis.

Presta attenzione anche alle nuove funzionalità della lingua. Questo è ciò che aiuta a creare applicazioni più potenti con meno sforzo e i miglioramenti della sicurezza forniti in bundle con le versioni linguistiche più recenti.

E sì, la migrazione non è un compito banale ma, ancora una volta, la comunità PHP ha molte risorse a tua disposizione che possono aiutarti a massimizzare le tue possibilità di successo, come ad esempio Rettore.

Hosting PHP gestito potenziato: migliora la velocità della tua app PHP del 300%

In ogni caso, il modo più sicuro per eseguire questo tipo di aggiornamento è prima clonare il server attuale in uno accessibile privatamente (di solito indicato come server di staging). Quindi, apporta le modifiche al codice a un ritmo relativamente basso e verifica che tutto funzioni come previsto. Risolvi eventuali problemi che potresti incontrare e, una volta che sei soddisfatto dei risultati, promuovi questo server alla produzione (cambia le definizioni DNS in modo che puntino al nuovo IP). Oppure, se questa non è un’opzione fattibile, replica le modifiche nel server originale.