Leder du efter vellykkede måder at fremskynde Laravel-ydelsen på, mens du arbejder på dit projekt? Så er du kommet til det rette sted!
Laravel er et populært open source PHP framework, der er kendt for sin robuste sikkerhed og enkle, men sofistikerede kodningsarkitektur. Det er et godt valg til opbygning af banebrydende webapplikationer, der er i stand til at skabe indtægter og drive virksomheder fremad.
Alligevel kan Laravel-ydelsen blive langsom, hvis du ikke bruger de rigtige optimeringsteknikker.
Heldigvis er der adskillige hacks til at maksimere Laravel-ydelsen. Vi har samlet en liste over de mest effektive optimeringstips, som du kan følge.
Hvorfor er Laravel-performanceoptimering så vigtig?
Udviklere skal være meget opmærksomme på ydeevnen af hver Laravel-applikation, før de frigiver den, for at sikre dens succes. Det er en af flere kvaliteter, som en Laravel-udvikler bør besidde.
Optimering af Laravel-ydelse med kodejusteringer og kommandoer kan hjælpe med at opnå dette og kan også have stor indflydelse på din app’s effektivitet.
Er Laravel langsom?
Laravel er et hurtigt framework, der leveres med en bådfuld funktioner og funktioner (f.eks. Memcache, databaseunderstøttelse, Redis osv.), der hjælper med ydeevnen. Laravel gør det også muligt for softwareprofessionelle at producere robust kode med relativt lille indsats for at opfylde deres projektmål, store som små.
Da data gemmes som nøgle-værdipar i serverens RAM, kan brugerne cache så meget som de vil for at vedligeholde deres apps eller websteder på en hurtig og smidig måde. Baseret på Google Trend er Laravel i øjeblikket det mest populære backend-værktøj til PHP.
Den nyligt udgivne Laravel 9 tilbyder nye forbedringer af ydeevnen. For eksempel har det minimale PHP-specifikationer og kræver Symphony 6.0, som kører 20,65 % hurtigere på PHP 8.1. Det nye design for route:list-kommandoen reducerer nu den rodet visning af komplekse kommandoer. Laravel 9 indeholder også en mere effektiv Query Builder-grænseflade og mange flere funktioner.
Ikke desto mindre er der nogle faktorer, der bidrager til en langsom Laravel-ydelse. Mange udviklere har dårlige vaner, såsom at uploade et stort antal tunge billeder, bruge gamle PHP-versioner, kompilere store mængder unødvendige data eller forsømme at fjerne unødvendige filer fra deres projekter.
Laravels sofistikerede MVC PHP-arkitektur og de tilhørende biblioteker giver en fremragende blanding af sikkerhed, ydeevne og brugervenlighed. Derfor er det en god tommelfingerregel at lære nogle Laravel-optimeringshacks for at opnå højere ydeevne.
Hjemmesidens hastighed er vigtig
Første indtryk er varige indtryk for ethvert brand image. Webstedshastighed er det første indtryk, du gør på dine webstedsbesøgende. Vidste du, at omkring 50% af onlinekunderne forlader websteder, der tager mere end tre sekunder at indlæse?
Webstedshastighed (også kaldet webstedsydelse) henviser til den tid, det tager en browser at indlæse fuldt funktionsdygtige websider fra et bestemt websted. Derfor har den en direkte indvirkning på brugeroplevelsen (UX) og konverteringsraten.
Hjemmesidens ydeevne påvirker også din SEO-ranking på søgemaskinerne. Hvis flere websteder tilbyder de oplysninger, som din besøgende søger, vil hurtigere websider blive vist først. Hvis dit websted er trægt, er der mindre sandsynlighed for, at det vil ligge højt i Googles søgeresultater.
Derfor bør du investere noget tid i at anvende effektive løsninger til optimering af webstedets ydeevne.
Fordele ved Laravel-performanceoptimering
Selvom du måske har designet en fantastisk Laravel-applikation, er der altid plads til forbedringer for at nå perfektion. Forøgelse af din Laravel-ydelse har en række fordele:
- Forbedring af virksomhedens vækst: Forbedret Laravel-ydelse betyder et mere effektivt websted eller en mere effektiv applikation. Som følge heraf øges dine chancer for at nå ud til et bredere publikum.
- Mere smidigt udviklingsmiljø: De nedenfor anførte tips til optimering af ydeevne for Laravel hjælper udviklere med at spare mere tid på kodning, udføre opgaver hurtigere og forbruge færre ressourcer.
- Håndtering af trafik bedre: Lær hvordan du smart bruger Laravel-køsystemet hjælper dit websted med at håndtere antallet af forespørgsler, når det vokser og henter en stor mængde trafik.
Sådan måler du Laravel-ydeevnen
Du har lagt en masse tid og kræfter i at få din smarte webapp til at fungere, men hvis den er langsom, vil ingen bruge den, og du vil stå tilbage uden succes. Det er her, at Laravel-præstationstest kommer ind i billedet.
Du kan bruge en række værktøjer til at udføre performancetests på din dyrebare kreation. Lad os tage et kig på tre af dem.
1. Blackfire.io
Blackfire.io er en intuitiv webapp-profilering, der identificerer væsentlige veje, så du kan koncentrere dig om de vigtige områder i din PHP-app.
Den indeholder flere funktioner til overvågning af ydeevne og viser hukommelsesforbrug, CPU-tid samt I/O. Blackfire.io giver dig også mulighed for at sortere funktionskald og pathways for at se, hvordan din Laravel-applikation fungerer.
2. Laravel Dusk
Med Laravel Dusk kan du teste din applikation og tjekke, hvordan den fungerer fra brugerens perspektiv. Du behøver ikke at installere Selenium eller JDK for at bruge Dusk, da den som standard indeholder Chromedriver.
Med et udviklervenligt API som Dusk kan du automatisere browsertestning, hvilket udelukker behovet for de strenge processer, som ChromeDriver og PHP WebDriver kræver separat.
Dusk gemmer desuden skærmbilleder og browserkonsoludgang af den mislykkede test, så du kan finde frem til eventuelle fejl.
3. LoadForge
LoadForge er skræddersyet til Laravel og scanner dit websted automatisk, identificerer problemer og giver omfattende grafer sammen med ydelsesstatistikker for hver side.
I Chrome giver LoadForge dig mulighed for at fange browserhandlinger og efterfølgende konvertere dem til en LoadForge-test. På denne måde kan du skabe en realistisk brugeroplevelse ved at simulere, at de logger ind, navigerer på dit websted eller endda afgiver ordrer.
Sådan optimerer du Laravels ydeevne (17 metoder)
I dette afsnit gennemgår vi nogle af de bedste idéer og taktikker med en tættekam for at hjælpe dig med at forbedre din Laravel-ydelse.
1. Route Caching
Route caching er en fremragende funktion, især for apps med et stort antal konfigurationer og ruter spredt ud over koden. Det er en gruppe af ruter pakket i en enkelt kommando for at hjælpe med at reducere den kedelige opgave med at kortlægge dine ruter manuelt. Som et resultat heraf vil siderne på dit websted blive indlæst meget hurtigere.
Route caching gør det muligt for Laravel at hente ruter med jævne mellemrum fra den forudkompilerede cache i stedet for at skulle starte helt fra bunden for hver ny bruger.
Brug denne kommando til at cache de nødvendige rutedata:
php artisan route:cache
Husk på, at cachen udløber, når brugeren forlader dit websted. Det er også vigtigt at køre kommandoen route cache hver gang, efter at du har foretaget strukturelle ændringer (f.eks. rutefiler og config) på dit websted, da eventuelle ændringer, der foretages efterfølgende, ikke vil få effekt.
Hvis du ønsker at slette rutecachen, skal du køre følgende kommando:
php artisan route:clear
2. Optimize Composer
Laravel bruger et separat værktøj kaldet Composer til at administrere forskellige afhængigheder. Når du installerer Composer første gang, indlæser det som standard dev-afhængigheder i dit system.
Disse afhængigheder er nyttige til at udvikle et websted. Men når dit websted er fuldt funktionsdygtigt, er de ikke længere nødvendige, og faktisk vil de kun gøre det langsommere.
Når du bruger Composer til at installere pakker, skal du bruge parametrene --no-dev
og -o
som følger for at fjerne dev-afhængigheder:
composer install --prefer-dist --no-dev -o
Denne kommando giver Composer mulighed for at oprette en mappe til optimering af autoloader og for at øge ydeevnen. Den anmoder blot om, at den officielle distribution hentes og pakkes, uden dev-afhængigheder.
Vær forsigtig med ikke at fjerne nogen runtime-afhængigheder. Dette kan bringe dit websteds ydeevne i fare eller endda få det til at gå ned.
3. Reducer autoloaded tjenester
Målet med Laravel er at gøre udviklingsprocessen så luftig for udviklere som muligt. Når du starter Laravel, indlæser den f.eks. automatisk en stor mængde tjenesteudbydere, der er opført i filen config/app.php, for at hjælpe dig med at komme hurtigt i gang med dit projekt.
Selv om dette er et fordelagtigt skridt fra Laravels side, behøver du ikke bruge alle disse tjenester til at opbygge en applikation.
Tag for eksempel REST API’en. Du har ikke brug for tjenester som View Service Provider eller Session Service Provider. Desuden følger mange udviklere ikke standardrammeindstillingerne. Du kan simpelthen deaktivere de tjenester, der er overflødige for dine behov (f.eks. Pagination Service Provider, Translation Service Provider, Auth Service Provider osv.)
Du vil kunne forbedre hastigheden i dine Laravel-applikationer ved at anvende det samme princip på andre apps. Bare sørg for, at du ikke fjerner vigtige tjenester, og dobbelttjek alt, før du går i krig med det.
4. Brug Artisan Kommandoer og Cache effektivt
Artisan er et populært kommandolinjeværktøj, der leveres med Laravel. Det gør det nemt for udviklere at udføre tilbagevendende og komplekse opgaver automatisk. Hjemmesideudviklere kan også bruge det til at udføre tests og generere kommandoer.
Ved at bruge Artisan-kommandoer smart kan du øge din app-ydelse. Nedenfor har vi listet flere af de bedste caching-kommandoer, du kan bruge.
Caching af konfiguration
Cache config er en fremragende kommando til at få et hastighedsboost. Den kompilerer alle din applikations konfigurationsværdier i én fil, så rammen kan indlæses hurtigere. Det eneste, du behøver, er at køre:
php artisan config:cache
Bemærk, at du ikke bør udføre config cache-kommandoen under lokal udvikling. Det skyldes, at konfigurationsindstillingerne muligvis skal ændres ofte i løbet af udviklingen af din app.
Hvis du vil slette config-cachen, skal du køre denne kommando:
php artisan config:clear
Vision Caching
Visionscachen er et andet aspekt af programmet, der indeholder en cache. Visionscachen gemmer genererede Blade-skabeloner for at øge hastigheden i dit projekt. Du kan bruge nedenstående artisan-kommando til at kompilere alle visninger manuelt og optimere ydeevnen:
php artisan view:cache
Husk at rydde cachen, når du uploader en ny kode; ellers vil Laravel bruge dine gamle visninger, og du vil bruge masser af tid på at forsøge at fejlfinde dette. Kør denne kommando for at rydde visioncachen:
php artisan view:clear
Application Caching
Dette er den vigtigste cache i Laravel. Den gemmer alle de data, som du cacher manuelt i din app. Brug af Laravels cache er en smart tilgang til at fremskynde ofte tilgåede data og optimere Laravels ydeevne. Hvis du bruger tags eller flere cache-lagre, kan du kun skylle bestemte elementer i cachen.
Her er artisan-kommandoen til at rydde Laravel-cachen:
php artisan cache:clear
Husk på, at denne kommando ikke sletter rute-, konfigurations- eller visningscache, der er placeret i mappen /bootstrap/cache/.
5. Reducer pakkeforbruget
Som et open-source framework med et folkeligt fællesskab er det kun naturligt at se flere og flere pakker udgivet eller nye versioner i eksisterende pakker i Laravel. Det står dig frit for at bruge dem og deres funktioner direkte i din applikation.
Du skal inkludere disse pakker i filen composer.json
. Laravel vil efterfølgende installere dem sammen med deres afhængigheder.
Der er dog nogle få faktorer, der skal tages i betragtning, før du tilføjer nye pakker til en applikation. De er f.eks. ikke alle designet til det samme formål. Nogle pakker er også skabt til at udføre en bred vifte af funktioner.
Når du tilføjer pakker med mange afhængigheder, vokser applikationens størrelse, og dens ydeevne lider i sidste ende under det. Derfor er det vigtigt at gennemgå afhængighederne nøje, før du tilføjer en pakke.
6. Opgrader til den nyeste version af PHP
Ligesom med enhver anden kode eller ethvert andet softwareprogram er det altid bedst at opdatere din PHP-version til den nyeste version.
Den primære grund til at bruge en opdateret PHP-version er sikkerheden. I to år modtager hver PHP-udgave sikkerhedsrettelser og fejlrettelser. Dit system kan blive bragt i fare, hvis du fortsætter med at bruge tidligere versioner, der ikke længere vedligeholdes.
Mange udviklere er måske også uvidende om, at jo ældre en PHP-version bliver, jo langsommere bliver dens ydeevne. For at øge effektiviteten har den aktuelle PHP-udgave fremragende forbedringer af ydeevnen, f.eks. hurtigere udførelse af forespørgsler, enums, fibre og arvecache.
Her hos Kinsta bruger vi den seneste større PHP-version (PHP 8.1) i alle miljøer, så brugerne kan drage fordel af platformens omfattende muligheder og optimere deres apps for maksimal hastighed og effektivitet.
7. Brug køer
Offloading af langsomme opgaver til et køjob er en simpel teknik til hurtigt at maksimere hastigheden i din Laravel-applikation.
Nogle gange har du ikke brug for oplysningerne i brugergrænsefladen med det samme. I dette tilfælde kan sådanne opgaver udskydes og køres senere i baggrunden af en separat proces (f.eks. afsendelse af en e-mail). Dette kan øge ydelsen af din app’s onlineforespørgsler betydeligt.
Laravel understøtter en række kø-drivere såsom IronMQ, Redis, Amazon SQS og Beanstalkd. Den indeholder desuden en indbygget køarbejder, der kan udføres ved hjælp af følgende kommando:
php artisan queue:work
Du kan tilføje et nyt job til køen ved hjælp af denne metode:
Queue::push('SendEmail', array('message' => $message));
Hvis du ønsker at udskyde udførelsen af et af de job, der står i kø, kan du bruge nedenstående metode via Carbon. Lad os f.eks. sige, at du vil planlægge et job, der sender en e-mail til en kunde 10 minutter efter, at vedkommende har oprettet en konto:
$date = Carbon::now()->addMinutes(10);
Queue::later($date, 'SendEmail@send', array('message' => $message));
8. Brug Deployment Tool til at appellere til alle kommandoer
Okay, vi er klar over, at dette ikke er et rent ydelsestip til Laravel, men det er en vidunderlig tidsbesparende teknik for udviklere, der er lige så vigtig for at forbedre produktiviteten.
Deployer er et PHP-baseret deployment-værktøj, der giver dig mulighed for at deployere din kode til forskellige servere. Det indeholder scripts til populære frameworks, såsom Laravel, Symfony, Zend, Magento, CakePHP og meget mere.
Hvis du ikke tidligere har beskæftiget dig med Composer til at administrere dine projektafhængigheder, vil du hurtigt blive fortrolig med Deployer. Brug dette værktøj til at automatisere alle dine maskinudrulningsoperationer, f.eks. lancering af serveren, kloning til en fjernserver og overvågning af en remote host.
Deployer har indstillinger til udførelse af migreringer, seedes og optimeringsfunktioner i Laravel-programmer med en enkelt kommando:
php deployer.phar deploy production
9. Brug Lumen til små projekter
Der er tilfælde, hvor udvikling af en lille applikation (f.eks. mobilapps eller Angular-apps) ikke kræver brug af et full-stack framework som Laravel. I dette scenarie kan du overveje at bruge Lumen i stedet.
Lumen er et mikroframework udviklet af den samme skaber af Laravel. Som en lettere version af Laravel handler Lumen om hastighed og ydeevne for mikrotjenester. Det kræver minimal indstilling og alternative routingparametre, når der bygges webapps, hvilket giver mulighed for en hurtigere udviklingsproces.
Lumen kan f.eks. håndtere 100 forespørgsler i sekundet. Du kan også integrere værktøjer eller pakker fra tredjeparter for at få nye funktioner. Desuden understøtter Lumen alle platforme og giver dig mulighed for at opgradere til Laravel.
10. Udnyt JIT-compiler
PHP er et server-side sprog, der kræver fortolkere til at oversætte koden til en bytekode, som computeren kan forstå.
Denne proces tager meget tid og bruger mange ressourcer. Derfor vælger programmører scripting-motorer som Zend-motoren til at udføre C-subrutiner, der skal gentages, hver gang et program udføres, hvilket gør din app langsommere.
Af hensyn til effektiviteten bruger udviklere Just-in-time-kompileren (JIT) til at gentage denne procedure kun én gang. HHVM, som blev opfundet og er meget anvendt af Facebook, er den foretrukne JIT-compiler til Laravel. Etsy, Wikipedia og snesevis af andre websteder bruger den også.
11. Gør brug af Eager Loading
For at interagere med databaser på en fornøjelig måde leverer Laravel en fantastisk objekt-relationel mapper (ORM) kaldet Eloquent. Det gør det muligt for dig at relatere tabellerne og håndtere alle CRUD-funktioner i PHP i et simpelt format.
Når du henter modeller fra en database og derefter udfører en hvilken som helst form for behandling af deres relationer, bliver relationsdataene “lazy loaded“. Det betyder, at dataene ikke indlæses, før du får adgang til relationen.
Du ender med at køre N+1 forespørgsler for at finde dit svar med lazy loading, som illustreret i det følgende eksempel:
$books = AppBook::all();
foreach ($books as $book) {
echo $book->author->name;
}
For at optimere Laravels ydeevne og løse N+1-forespørgselsproblemet kan Laravel “eager load” dataene som vist nedenfor:
$books = AppBook::with('author')->get();
foreach ($books as $book) {
echo $book->author->name;
}
12. Komprimerer billeder
Billeder spiller en vigtig rolle i et webstedsdesign. De er afgørende for at forbedre brugeroplevelsen (UX) og øge søgerangeringerne.
Den gennemsnitlige indlæsningstid på et websted er to sekunder. Tunge billeder bremser et websteds indlæsningshastighed. Hvis du har et langsomt websted, er der en stor chance for, at du ender med at miste mange besøgende.
Billedkomprimering minimerer størrelsen af dit originale billede uden at gå på kompromis med kvaliteten, hvilket hjælper med at optimere webstedets hastighed. Af denne grund tilbyder Laravel pæne muligheder for komprimering af billeder såsom TinyPNG, reSmush.it eller ImageMin.
13. Brug en CDN
Brug af et content delivery network (CDN) kan virkelig optimere Laravels ydeevne. Ved at indlæse statisk indhold fra en CDN-server i stedet for direkte fra den maskine, hvor dine filer er hostet, når data hurtigere frem til dit publikum.
Med andre ord caches den nyeste version af dit websted til et globalt netværk af cloud-servere. Derfor vil dine besøgende, selv om de befinder sig geografisk langt væk fra din placering, stadig kunne få hurtig adgang til dit websted.
Kinsta CDN er drevet af Cloudflare og leveres gratis. Det gør det muligt at levere dit websteds cachede filer fra dit primære domæne i stedet for et sekundært CDN-domæne, hvilket øger din SEO-rangering.
Kinsta CDN hjælper desuden med at fjerne uønskede komponenter fra dine JavaScript- (JS) og CSS-filer. Dette reducerer i høj grad den tid, det tager for dit websteds sider at indlæse, og reducerer båndbreddeforbruget.
14. Minimer JS og CSS-kode
Giv et spark til at øge din Laravel-ydeevne ved at minificere dine JavaScript- og CSS-filer, før du fortsætter med processen til pakning af aktiver.
Dette minificeringstrin fjerner unødvendig kode fra din applikation, f.eks. whitespace, kommentarer og omdøbning af variabler ved hjælp af forkortede navne. Hvis det er nødvendigt, kan du ændre størrelsen på dine billeder for at oprette miniaturebilleder.
Som et resultat forbedrer du din UX, samtidig med at du mindsker HTTP-call.
15. Anvende Asset Bundling
Der er flere værktøjer til rådighed til komprimering og bundling af filer som Javascript og CSS til en enkelt fil som Laravel Mix og Laravel Packer.
Alle Laravel-applikationer indeholder Laravel Mix som standard. Det er et brugervenligt API, der bruges til at oprette Webpack-bygninger til dine PHP-apps ved hjælp af en række almindelige Javascript- og CSS-præprocessorer.
Hvis du antager, at du har brug for en bestemt samling af stilformater til din applikationsfil, kan du indtaste noget som dette:
mix.styles([
'public/css/vendor/normalize.css',
'public/css/styles.css'
], 'public/css/all.css');
Nu vil Laravel Mix automatisk generere en all.css
-fil fra normalize.css
– og style.css
-filerne. Derfor kan du i stedet for at få hvert stilark separat, kombinere dem i en enkelt all.css-fil.
Laravel Packer er et kommandolinjeværktøj, der kan installeres via Composer. Det giver dig mulighed for at reducere og bundle din JS- og CSS-kode. Det er dog sværere at bruge end Laravel Mix.
Selv om dette tip er fantastisk til at pumpe Laravel-ydelse, vil sammenlægning af mange filer gøre den enorm og i sidste ende have den modsatte effekt. For at løse dette problem skal du bruge Laravel Mix til at skrumpe dine filer ned ved at køre denne kommando:
npm run prod
16. Begræns inkluderede biblioteker
Laravel giver dig frihed til at tilføje så mange biblioteker som du vil. Selv om dette er en fantastisk funktion, lægger tilføjelsen af en masse biblioteker et stort pres på din applikations ydeevne. Det kan også påvirke hele brugeroplevelsen.
Det er derfor vigtigt at scanne alle de bibliotekers data, der i øjeblikket er i brug i koden. Du kan finde disse biblioteker i config/app.php file
. Mens du undersøger bibliotekerne, skal du fjerne dem, som du ved ikke længere er nyttige for dig.
Det er også en god idé at gennemgå composer.json
for unødvendige afhængigheder.
17. Overvej at bruge New Relic
New Relic er et APM-værktøj (Application Performance Management), som udviklerne integrerer i deres Laravel-apps. Det bruges til at analysere og overvåge statistik, der afspejler deres ydeevne, for at optimere effektiviteten og undgå afbrydelser i realtid.
New Relic kan hjælpe dig med at vurdere din Apdex-score og måle, hvordan din app sammenligner sig med konkurrenterne på markedet. Det giver dig også mulighed for at oprette alarmpolitikker afhængigt af dine kriterier.
Hvis du ikke ønsker at tilmelde dig en tredjepartstjeneste, kan du bruge Kinstas APM-værktøj. Det kan hjælpe dig med at finde PHP-ydelsesflaskehalse på dit WP-websted uden ekstra omkostninger.
Opsummering
Laravel er et hurtigt voksende PHP framework, og der er masser af tutorials til rådighed for alle slags brugere, så de kan lære Laravel uanset deres vidensniveau.
Når det kommer til brugeroplevelsen i den digitale verden, er ydeevne en afgørende faktor for at etablere en stærk online tilstedeværelse. Det er ikke overraskende, at organisationer bruger mere tid og flere ressourcer på at levere en UX af høj kvalitet.
Hvis du er en Laravel-udvikler, kan du være sikker på, at du ved at bruge de ovenfor beskrevne metoder vil bemærke en betydelig forbedring af ydeevnen og være i stand til at opretholde en problemfri applikation.
Hvilke andre metoder har du brugt til at fremskynde dine Laravel-apps? Lad os vide det i kommentarfeltet nedenfor.
Skriv et svar