PHP Performance Tuning: 12 eenvoudige Tips
in elke PHP webapplicatie, prestaties echt belangrijk. Gebruikers klagen over het langzaam laden van pagina ‘s, ontoegankelijke pagina’ s, niet-reagerende links en vele andere factoren die leiden tot het verliezen van die gebruikers als klanten. Om aan de behoeften van uw gebruikers te voldoen, moeten de prestaties continu worden gecontroleerd en gemonitord. Elke software applicatie heeft tools nodig voor het monitoren en meten van de prestaties van het systeem. Hier zijn 12 eenvoudige PHP performance tuning tips.
PHP Performance Tuning Tips
Bottlenecks
de eerste stap is het identificeren van de belemmeringen in de prestaties van uw applicatie om de oorzaak van het probleem te vinden. Door het identificeren van het probleem, kunt u plannen en selecteer de best mogelijke oplossing en optie voor uw toepassing. Vervolgens kunt u de oplossing implementeren en daarna kunt u de resultaten meten. U kunt tools zoals Prefix of Retrace gebruiken om PHP-prestaties af te stemmen.
Prefix wordt gebruikt om langzame queries te markeren, wat het gedrag van uw code en nog veel meer valideert. U moet herkennen welke optimalisatie tool kan u helpen bij het meten van de prestaties van uw toepassing. U moet ook een lijst van de behoeften van uw toepassing en bestel het van hoogste tot LAAGSTE prioriteit. Op deze manier kunt u vaststellen dat sommige items zijn niet belangrijk om zorgen over te maken.
profilering
een tip voor PHP performance tuning is profilering. Er zijn een heleboel profiling tools die u nodig hebt om te identificeren die zou passen bij uw behoeften. Elke PHP profiler heeft zijn eigen functies en voordelen. Ik heb gezocht naar een PHP profiler op het internet en iedereen heeft zijn eigen voor-en nadelen in het gebruik ervan. Staccify heeft Prefix die wordt gebruikt als een profiling tool. Het heeft unieke kenmerken die u in staat stellen om continue feedback te krijgen over de prestaties van uw server-side code, SQL en andere methoden die worden gebruikt in uw systeem. De beste en meest indrukwekkende functie in Prefix is dat het visualiseert de hele aanvraag pijplijn bij het ontwikkelen van webapplicaties.
zodra u Prefix downloadt en installeert, kunt u direct informatie zien over
- de totale tijd die nodig was om de pagina
- aan te bieden er was een gevangen uitzondering
- de status code die werd geretourneerd was 200
en andere belangrijke details die je nodig hebt om te controleren en te weten over uw toepassing.
Code optimalisatie
een van de PHP performance tuning methoden om de kwaliteit van uw code te garanderen is om de beste code optimalisatie proces en technieken. Uw code kan worden geoptimaliseerd, zodat het geheugen gebruikt, voert sneller, en voert ook minder input en output operaties. Hoewel code optimalisatie is een van de beste PHP performance tuning tips, het betekent niet dat uw code moet complex zijn, of je nodig hebt om een standaard bibliotheken te vervangen. Soms kost optimalisatie veel tijd om de code te traceren en te onderhouden. In het ergste geval dragen deze optimalisaties geen voordeel bij omdat u veel tijd verspilt aan het optimaliseren van niet-kritieke delen van uw toepassing.
de meeste toepassingen gebruiken meestal meerdere afhankelijkheden zoals PaaS-services, ElasticSearch, Redis, queueing, SQL & NoSQL-databases, MongoDB en nog veel meer. Prefix helpt ontwikkelaars te begrijpen of hun code alle afhankelijkheden correct gebruikt. Het laat ook de ontwikkelaar weten hoe de alle afhankelijkheden van invloed zijn op de prestaties van hun app.
configuratie optimalisatie
in elke PHP applicatie is het eerste wat je doet het instellen van de configuratie en andere omgevingen die van toepassing zijn in uw applicatie. Je kunt misschien zo veel functies toevoegen die de prestaties van je applicatie verbeteren en je code optimaliseren, maar een goede configuratie van je PHP runtime-omgeving zou er ook toe doen. Configuratieoptimalisatie stelt u ook in staat om de prestaties van uw applicatie te optimaliseren, evenals de betrouwbaarheid en kosteneffectiviteit van uw applicatiesysteemopslag te garanderen. Het wijzigen van de instellingen van uw applicatie kan ertoe leiden dat sommige PHP-applicaties niet meer functioneren. Het is noodzakelijk dat u het idee begrijpt van het wijzigen van bepaalde instellingen, maar houd er altijd rekening mee dat wanneer u iets uitschakelt u uw wijzigingen moet opvolgen met een test run in uw omgeving.
gedistribueerd computergebruik
gedistribueerd computergebruik wordt toegepast om het potentieel voor parallelle uitvoering te vergroten. Deze techniek kan de belasting op gedeelde bronnen verhogen hoogstwaarschijnlijk in databasesystemen. De meeste webapplicaties hebben problemen en problemen als het gaat om latency en bandbreedtedistributie, maar gedistribueerde computing kan helpen om de latency te minimaliseren en knelpunten te voorkomen. Op deze manier kan gedistribueerde computing zeer gunstig zijn voor uw systeem vanuit gedistribueerde caches. Caching tips zijn het volgende onderwerp hieronder.
cachingstrategie
een goede cachingstrategie kan het aantal databaseoperaties en het opstellen van code verminderen. Het is vaak verstandig om Memcache te gebruiken voor het verlagen van de database belasting, de alternatieve PHP Cache(APC) voor opcode caching en code optimalisatie. Er zijn veel opties als we het hebben over caching in PHP opcode. Deze omvatten APC (die gratis is!), eAccelerator (gratis), XCache (gratis), en Zend Platform. Staccify gebruikt eerst de Windows Azure Managed Cache, maar er zijn een paar klachten ontvangen. Dus Staccify besloten om te proberen Redis, die nu wordt ondersteund door Azure. Redis is veel meer aanbevolen dan de Windows Azure Managed Cache. Mijn beste advies is om goed te evalueren elke cache strategie om te zien welke het beste zal suite uw behoeften en levert de beste resultaten.
Load balancing
in een webtoepassing heeft load balancing niet veel te maken met de toepassing, maar zal het meer invloed hebben op de hosting en infrastructuur. In PHP, load balancing wordt geconfigureerd in de plugins met behulp van verschillende technieken zoals random, round-robin, en gebruiker filter. U kunt ook wat prioritering doen als het gaat om server ‘ s toewijzing; op deze manier, kan sommige prioritering handig zijn in heterogene omgevingen. Het enige wat je altijd in gedachten moet houden is dat sessie objecten moeten worden vermeden omdat het is opgeslagen in het geheugen van uw lokale machine. Op deze manier kan de synchronisatie van uw gegevens misleidend zijn tijdens de back-up of tijdens de feitelijke gegevensverwerking.
behalve het vermijden van sessieobjecten, moet u ook geen bestanden zoals images op de server opslaan. Het zou beter zijn om ze in de cloud te plaatsen. Tot slot, als je servers hebt die dezelfde configuratie hebben, houd er dan altijd rekening mee dat sommige servers beter zijn dan andere in hardware configuratie.
in de meeste gevallen is het grootste probleem met taakverdeling het omgaan met de database en back-up herstel. In Staccify is load balancing niet echt een probleem, omdat het de cloud optimaliseert, Azure om specifiek te zijn. De cloud biedt een disaster recovery omgeving die is geconfigureerd, klaar, en geschaald naar behoren indien nodig.
vermijd client-side
in elke webapplicatie, wanneer u zoveel omleidingen van uw pagina ‘ s hebt, kan het de paginasnelheid aanzienlijk verlagen. Er wordt voorgesteld dat u voortdurend controleren en verwijderen of verminderen van de omleiding van uw pagina ‘ s. Aan de andere kant, omleiden van gebruikers naar een SSL-versie van uw pagina zal helemaal niet werken.
beveiliging (HTTP/2 over SSL)
Hypertext Transfer Protocol is een toepassingsprotocol dat werkt op de TCP/IP-laag. HTTP is verantwoordelijk voor het tot stand brengen van een verbinding tussen server en client. Het is ook verantwoordelijk voor het verwerken van verzoeken van gebruikers in een webpagina of in de browser. Secure Socket Layer (SSL), aan de andere kant, is de beveiligde versie van HTTP. De meeste communicatie tussen webserver en client wordt versleuteld door SSL.
in de huidige technologie ondersteunt het grootste deel van onze browser al HTTP / 2. Hoewel browsers HTTP/2 ondersteunen, heeft het eigenlijk beperkingen aan de serverzijde.
SQL
een database is een van de meest fundamentele elementen in een webtoepassing. In de SQL-database moet u altijd begrijpen hoe de fundamentele bronnen goed functioneren. SQL Server heeft zijn eigen dynamic management views (DMV’ s) die erin zijn ingebouwd. De meeste DVM ‘ s bieden gegevens over query statistieken, het uitvoeren van plannen, en nog veel meer. Het goede aan DVMs is dat het altijd beschikbaar is om basis rollup statistieken te bieden, maar het kan de query ‘ s die na verloop van tijd worden opgeroepen niet visualiseren.
Application performance management (APM) tools hebben de mogelijkheid om SQL-query ‘ s te volgen. Retrace bieden SQL tracking queries op meerdere databaseproviders, waaronder SQL Server. Retrace vertelt je ook hoe vaak een query is uitgevoerd, en welke transacties het noemen. Het meest relevante voordeel van het gebruik van Retrace is dat het gedetailleerde rapportage over apps, per app, en query. Het kan gedetailleerde transacties weergeven over hoe queries worden gebruikt in uw app. Dit is de belangrijkste informatie als het gaat om PHP performance tuning voor SQL.
Content delivery network (CDN)
Content delivery network (CDN) is een van de meest efficiënte en effectieve manieren om de levering van websites met veel verkeer en websites met een wereldwijd bereik te versnellen. Veel bedrijven gebruiken CDN al bij het verwerken van grootschalige websites om het geografische bereik te vergroten. Deze techniek kan latency te verminderen, bandbreedte verbruik, en veilige toepassingen, terwijl het ook kan blokkeren spammers en andere data scrappers die uw systeem kunnen aanvallen.
foutafhandeling
foutafhandeling is een van de belangrijkste onderdelen van elke applicatie-ontwikkeling. PHP biedt verschillende technieken en strategieën om fouten te verwerken. Ze stellen u in staat om uw eigen regels voor foutafhandeling vast te stellen en de manier te wijzigen waarop fouten kunnen worden gelogd. Dit stelt u in staat om Foutrapportage te ontwikkelen en te verbeteren die het beste past bij uw behoeften.
het oplossen van problemen is een hoofdpijn tijdens en na de ontwikkeling, en Staccify ontwierp een oplossing voor het probleem. De krachtigste functie van Retrace is code-profilering, die zelfs fouten kan bijhouden, zelfs als u niet inlogt. Het Vindt verborgen fouten in uw code, en het geeft u snel een melding via e-mail en SMS voordat al uw klanten worden getroffen. Het monitoren van fouten in Retrace is niet alleen beperkt tijdens de ontwikkeling, maar ook in uw productieomgeving, en het zal automatisch nieuwe fouten en logs bijwerken.
samenvatting
er zijn veel instrumenten voor prestatiebewaking op de markt. Kies de beste die past bij uw behoeften in uw toepassing.
Staccify biedt veel pakketten die elke ontwikkelaar, systeembeheerder of zelfs database-beheerder altijd nuttig zou vinden. Met behulp van onze Staccify-producten kunt u eenvoudig gegevens controleren, loggen, debuggen en nog veel meer details die de oorzaak van problemen met webtoepassingen zullen vinden en u productiever zult worden. U kunt proberen en check onze gratis proefperiode nu.
meer informatie
deze artikelen bieden aanvullende informatie over PHP performance tuning die nuttig kan zijn voor uw PHP applicaties.
- 18 PHP Tools voor ontwikkelaars van alle niveaus
- waarom vroegtijdige optimalisatie de wortel Is van al het kwaad
- Web Performance Optimization: Top 3 server en Client-Side Performance Tips
- Fundamentals of Web Application Performance Testing
- Comparison of 18 APM & Application Monitoring Tools
- over de auteur
- Laatste berichten
Juliet Mendez is hoogleraar aan de afdeling Computer-en Informatiewetenschappen en promovendus gespecialiseerd in informatietechnologie. Ze heeft een achtergrond in CCNA, computerprogrammeringen zoals PHP, JAVA, mobiele ontwikkeling en projectmanagement.
- Toon alle PHP fouten: Basic & geavanceerd gebruik-27 Maart 2020
- PHP Performance Optimization Guide-oktober 9, 2018
- 5 PHP Performance Testing Tools die je moet weten-26 September 2018
- Laravel Eloquent Tutorial met voorbeelden-24 September 2018
- Krijg gedetailleerde PHP Trater-augustus 20, 2018