PHP Performance Tuning: 12 semplici consigli
In ogni applicazione web PHP, le prestazioni contano davvero. Gli utenti si lamentano di pagine di caricamento lente, pagine inaccessibili, collegamenti non rispondenti e molti altri fattori che portano a perdere quegli utenti come clienti. Per soddisfare le esigenze degli utenti, le prestazioni devono essere costantemente controllate e monitorate. Ogni applicazione software ha bisogno di strumenti per monitorare e misurare le prestazioni del sistema. Ecco 12 semplici suggerimenti per la messa a punto delle prestazioni PHP.
PHP Ottimizzazione delle Prestazioni Suggerimenti
colli di bottiglia
Il primo passo è quello di identificare gli ostacoli le prestazioni dell’applicazione, al fine di trovare la causa principale del problema. Identificando il problema, è possibile pianificare e selezionare la migliore soluzione possibile e l’opzione per l’applicazione. È quindi possibile implementare la soluzione e successivamente è possibile misurare i risultati. È possibile utilizzare strumenti come Prefix o Retrace per ottimizzare le prestazioni di PHP.
Prefisso viene utilizzato per evidenziare query lente, che convalida il comportamento del codice e molto altro ancora. Dovresti riconoscere quale strumento di ottimizzazione potrebbe aiutarti a misurare le prestazioni della tua applicazione. Dovresti anche fare un elenco delle esigenze della tua applicazione e ordinarlo dalla priorità più alta a quella più bassa. In questo modo è possibile identificare che alcuni elementi non sono importanti di cui preoccuparsi.
Profiling
Un suggerimento per la messa a punto delle prestazioni PHP è profiling. Ci sono molti strumenti di profilazione che devi identificare che si adattano alle tue esigenze. Ogni profiler PHP ha le sue caratteristiche e vantaggi. Ho cercato un profiler PHP in Internet e ognuno ha i suoi vantaggi e svantaggi nell’usarlo. Stackify ha prefisso che viene utilizzato come strumento di profilazione. Ha caratteristiche uniche che consentono di ottenere un feedback continuo sulle prestazioni del codice lato server, SQL e altri metodi utilizzati nel sistema. La caratteristica migliore e più impressionante di Prefix è che visualizza l’intera pipeline di richiesta durante lo sviluppo di applicazioni Web.
una Volta che si scaricare e installare il Prefisso, è possibile vedere direttamente informazioni su
- il tempo totale impiegato per servire la pagina
- c’è stato un eccezione catturata
- il codice di stato restituito 200
e altri dettagli importanti che è necessario monitorare e conoscere la vostra applicazione.
Ottimizzazione del codice
Uno dei metodi di ottimizzazione delle prestazioni PHP per garantire la qualità del codice è quello di avere il miglior processo di ottimizzazione del codice e tecniche. Il codice può essere ottimizzato in modo che utilizzi la memoria, esegua più rapidamente e esegua anche meno operazioni di input e output. Anche se l’ottimizzazione del codice è uno dei migliori suggerimenti per la messa a punto delle prestazioni PHP, ciò non significa che il codice debba essere complesso o che sia necessario sostituire qualsiasi libreria standard. A volte l’ottimizzazione richiede molto tempo per tracciare e mantenere il codice. Nel peggiore dei casi, queste ottimizzazioni non apportano alcun vantaggio perché si sta sprecando molto tempo per ottimizzare le parti non critiche della propria applicazione.
La maggior parte delle applicazioni utilizza in genere più dipendenze come servizi PaaS, ElasticSearch, Redis, queueing, SQL & Database NoSQL, MongoDB e molto altro. Prefix aiuta gli sviluppatori a capire se il loro codice utilizza correttamente tutte le dipendenze. Consente inoltre allo sviluppatore di sapere in che modo tutte le dipendenze influenzano le prestazioni della propria app.
Ottimizzazione della configurazione
In qualsiasi applicazione PHP, la prima cosa da fare è impostare la configurazione e altri ambienti applicabili nell’applicazione. Potresti essere in grado di aggiungere così tante funzionalità che aumentano le prestazioni dell’applicazione e ottimizzano il codice, ma anche una corretta configurazione del tuo ambiente di runtime PHP sarebbe importante. L’ottimizzazione della configurazione consente inoltre di ottimizzare le prestazioni dell’applicazione, nonché di garantire l’affidabilità e l’economicità dello storage di sistema delle applicazioni. La modifica delle impostazioni dell’applicazione potrebbe causare l’arresto del funzionamento di alcune applicazioni PHP. È necessario comprendere l’idea di modificare determinate impostazioni, ma tenere sempre presente che quando si disattiva qualcosa è necessario seguire le modifiche con un’esecuzione di test nel proprio ambiente.
Calcolo distribuito
Il calcolo distribuito è praticato per aumentare il potenziale di esecuzione parallela. Questa tecnica può aumentare il carico sulle risorse condivise molto probabilmente nei sistemi di database. La maggior parte delle applicazioni Web ha problemi e problemi quando si tratta di latenza e distribuzione della larghezza di banda, ma il calcolo distribuito può aiutare a ridurre al minimo la latenza ed evitare colli di bottiglia. In questo modo il calcolo distribuito può essere molto vantaggioso per il sistema dalle cache distribuite. Suggerimenti caching sarà il prossimo argomento qui sotto.
Strategia di caching
Una buona strategia di caching potrebbe ridurre il numero di operazioni di database e la compilazione del codice. Spesso è saggio usare Memcache per abbassare il carico del database, l’alternativa PHP Cache(APC) per il caching dell’opcode e l’ottimizzazione del codice. Ci sono molte opzioni quando parliamo di caching in PHP opcode. Questi includono APC (che è gratis!), eAccelerator (gratuito), XCache (gratuito) e piattaforma Zend. Stackify utilizza innanzitutto la cache gestita di Windows Azure, ma sono stati ricevuti un paio di reclami. Quindi Stackify ha deciso di provare Redis, che ora è supportato da Azure. Redis è molto più consigliato piuttosto che la cache gestita di Windows Azure. Il mio miglior consiglio è quello di valutare correttamente ogni strategia di cache per vedere quale sarà meglio soddisfare le vostre esigenze e offre i migliori risultati.
Bilanciamento del carico
In un’applicazione web, il bilanciamento del carico non ha molto a che fare con l’applicazione, ma avrà un impatto maggiore sull’hosting e sull’infrastruttura. In PHP, il bilanciamento del carico è configurato nei plugin utilizzando varie tecniche come casuale, round-robin, e filtro dell’utente. Puoi anche fare alcune priorità quando si tratta di assegnazione del server; in questo modo, alcune priorità possono essere utili in ambienti eterogenei. L’unica cosa che dovresti sempre tenere a mente è che gli oggetti di sessione dovrebbero essere evitati poiché sono memorizzati nella memoria della tua macchina locale. In questo modo, la sincronizzazione dei tuoi dati potrebbe essere fuorviante durante il backup o durante l’elaborazione effettiva dei dati.
Oltre ad evitare gli oggetti di sessione, non è necessario memorizzare file come immagini sul server. Sarebbe meglio metterli nel cloud. Infine, se si dispone di server che hanno la stessa configurazione, tenere sempre a mente che alcuni server sono migliori di altri nella configurazione hardware.
Nella maggior parte dei casi, il problema principale con il bilanciamento del carico è quando si tratta del database e del ripristino del backup. In Stackify, il bilanciamento del carico non è un problema poiché ottimizza il cloud, Azure per essere specifico. Il cloud offre un ambiente di disaster recovery configurato, pronto e scalato in modo adeguato quando necessario.
Evita il lato client
In ogni applicazione web, quando hai così tanti reindirizzamenti delle tue pagine, può ridurre significativamente la velocità della pagina. Si suggerisce di controllare e rimuovere costantemente o ridurre il reindirizzamento delle pagine. D’altra parte, reindirizzare gli utenti a una versione SSL della tua pagina non funzionerà affatto.
Sicurezza (HTTP/2 su SSL)
Hypertext Transfer Protocol è un protocollo applicativo che opera sul livello TCP/IP. HTTP è responsabile della creazione di una connessione tra server e client. E ‘ anche responsabile per l’elaborazione richiesta degli utenti in una pagina web o nel browser. Secure Socket Layer (SSL), d’altra parte, è la versione protetta di HTTP. La maggior parte delle comunicazioni tra server Web e client vengono crittografate tramite SSL.
Nella tecnologia di oggi, la maggior parte del nostro browser supporta già HTTP/2. Sebbene i browser supportino HTTP / 2, in realtà ha limitazioni sul lato server.
SQL
Un database è uno degli elementi fondamentali di un’applicazione web. Nel database SQL, è sempre necessario capire come le risorse fondamentali funzionano correttamente. SQL Server ha le proprie viste di gestione dinamica (DMV) che sono incorporati in esso. La maggior parte dei DVM fornisce dati su statistiche di query, piani di esecuzione e molti altri. La cosa buona di DVMs è che è sempre disponibile per fornire statistiche di rollup di base, ma non può visualizzare le query che vengono chiamate nel tempo.
Application Performance Management (APM) strumenti hanno la capacità di monitorare le query SQL. Retrace fornire query di monitoraggio SQL su più fornitori di database, tra cui SQL Server. Retrace ti dice anche quante volte è stata eseguita una query e quali transazioni la stanno chiamando. Il vantaggio più rilevante dell’utilizzo di Retrace è che dispone di report dettagliati su app, app e query. Può mostrare transazioni dettagliate su come vengono utilizzate le query nella tua app. Questa è l’informazione più importante quando si tratta di ottimizzazione delle prestazioni PHP per SQL.
Content Delivery network (CDN)
Content delivery network (CDN) è uno dei modi più efficienti ed efficaci per accelerare la consegna di siti Web ad alto traffico e siti web che hanno portata globale. Molte aziende utilizzano già CDN quando gestiscono siti Web su larga scala per aumentare la portata geografica. Questa tecnica può ridurre la latenza, ridurre il consumo di larghezza di banda e proteggere le applicazioni, mentre può anche bloccare gli spammer e altri scrapper di dati che potrebbero attaccare il sistema.
Gestione degli errori
La gestione degli errori è una delle parti più importanti di qualsiasi sviluppo di applicazioni. PHP fornisce diverse tecniche e strategie per gestire gli errori. Consentono di stabilire le proprie regole di gestione degli errori e modificare il modo in cui gli errori possono essere registrati. Ciò consente di sviluppare e migliorare la segnalazione degli errori che meglio si adattano alle proprie esigenze.
La risoluzione dei problemi è un mal di testa durante e dopo lo sviluppo e Stackify ha progettato una soluzione al problema. La funzionalità più potente di Retrace è la profilazione del codice, che può anche tenere traccia degli errori anche se non si effettua la registrazione. Trova errori nascosti nel tuo codice e ti dà rapidamente notifiche tramite e-mail e SMS prima che tutti i tuoi clienti siano interessati. Il monitoraggio degli errori in Retrace non è limitato solo durante lo sviluppo, ma anche nell’ambiente di produzione e aggiornerà automaticamente nuovi errori e log.
Sommario
Ci sono molti strumenti di monitoraggio delle prestazioni disponibili sul mercato. Scegli quello migliore per soddisfare le vostre esigenze nella vostra applicazione.
Stackify fornisce molti pacchetti che ogni sviluppatore, amministratore di sistema o persino amministratore di database troverà sempre utili. Utilizzando i nostri prodotti Stackify, puoi facilmente monitorare, registrare, eseguire il debug dei dati e molti altri dettagli che troveranno la causa principale dei problemi delle applicazioni Web e diventerai più produttivo. Puoi provare e controllare la nostra prova gratuita ora.
Ulteriori informazioni
Questi articoli forniscono ulteriori informazioni sull’ottimizzazione delle prestazioni PHP che potrebbero essere utili per le tue applicazioni PHP.
- 18 Strumenti PHP per gli sviluppatori di tutti i livelli
- Perché l’ottimizzazione prematura è la radice di tutti i mali
- Ottimizzazione delle prestazioni Web: Top 3 lato Server e Lato Client Performance Tips
- Fondamenti di Web Application Performance Test
- Confronto dei 18 APM & Applicazione di Strumenti di Monitoraggio
- Circa l’Autore
- Ultimi Post
Su Giulietta Mendez
Giulietta Mendez è Professore presso il Dipartimento di informatica e Scienze dell’Informazione e il Dottorato di ricerca specializzati in Information Technology. Ha un background in CCNA, programmazioni di computer come PHP, JAVA, sviluppo mobile e gestione dei progetti.
- Visualizza Tutte PHP Errori di Base: & Utilizzo Avanzato – Marzo 27, 2020
- PHP Ottimizzazione delle Prestazioni di Guida – ottobre 9, 2018
- 5 Prestazioni PHP Strumenti di Test È Necessario Sapere – 26 settembre, 2018
- Laravel Eloquente Tutorial Con Esempi – 24 settembre, 2018
- Ottenere informazioni Dettagliate PHP Trater – agosto 20, 2018