17 วิธีในการเพิ่มประสิทธิภาพ Laravel
เผยแพร่แล้ว: 2022-05-25คุณกำลังมองหาวิธีที่ประสบความสำเร็จในการเร่งประสิทธิภาพของ Laravel ในขณะที่ทำงานในโครงการของคุณหรือไม่? คุณมาถูกที่แล้ว!
Laravel เป็นเฟรมเวิร์ก PHP โอเพ่นซอร์สยอดนิยมที่ขึ้นชื่อเรื่องความปลอดภัยที่แข็งแกร่งและสถาปัตยกรรมการเข้ารหัสที่เรียบง่ายแต่ซับซ้อน เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการสร้างเว็บแอปพลิเคชันล้ำสมัยที่สามารถเพิ่มรายได้และขับเคลื่อนธุรกิจไปข้างหน้าได้
อย่างไรก็ตาม ประสิทธิภาพของ Laravel อาจช้าลงหากคุณไม่ได้ใช้เทคนิคการเพิ่มประสิทธิภาพที่เหมาะสม
โชคดีที่มีการแฮ็กมากมายเพื่อเพิ่มประสิทธิภาพ Laravel ให้สูงสุด เราได้รวบรวมรายการเคล็ดลับการเพิ่มประสิทธิภาพที่มีประสิทธิภาพมากที่สุดซึ่งคุณสามารถปฏิบัติตามได้
เหตุใดการเพิ่มประสิทธิภาพ Laravel จึงมีความสำคัญมาก
นักพัฒนาซอฟต์แวร์ต้องให้ความสนใจอย่างมากกับประสิทธิภาพของทุกแอปพลิเคชัน Laravel ก่อนเปิดตัวเพื่อให้แน่ใจว่าประสบความสำเร็จ เป็นหนึ่งในคุณสมบัติหลายประการที่นักพัฒนา Laravel ควรมี
การปรับประสิทธิภาพของ Laravel ให้เหมาะสมด้วยการปรับแต่งโค้ดและคำสั่งต่างๆ สามารถช่วยให้บรรลุเป้าหมายนี้ และอาจมีอิทธิพลอย่างมากต่อประสิทธิภาพของแอปของคุณเช่นกัน
Laravel ช้าหรือไม่?
Laravel เป็นเฟรมเวิร์กที่รวดเร็วซึ่งมาพร้อมกับฟีเจอร์และฟังก์ชันมากมาย (เช่น Memcache, การสนับสนุนฐานข้อมูล, Redis เป็นต้น) เพื่อช่วยในเรื่องประสิทธิภาพ Laravel ยังช่วยให้ผู้เชี่ยวชาญด้านซอฟต์แวร์สร้างโค้ดที่มีประสิทธิภาพโดยใช้ความพยายามเพียงเล็กน้อยเพื่อให้บรรลุเป้าหมายโครงการไม่ว่าจะเล็กหรือใหญ่
เนื่องจากข้อมูลถูกจัดเก็บเป็นคู่ของคีย์-ค่าใน RAM ของเซิร์ฟเวอร์ ผู้ใช้จึงสามารถแคชได้มากเท่าที่ต้องการเพื่อดูแลแอปหรือไซต์ของตนอย่างรวดเร็วและราบรื่น จาก Google Trend ปัจจุบัน Laravel เป็นเครื่องมือแบ็กเอนด์ที่ได้รับความนิยมมากที่สุดสำหรับ PHP

Laravel 9 ที่เพิ่งเปิดตัวมีการปรับปรุงประสิทธิภาพใหม่ ตัวอย่างเช่น มีข้อกำหนด PHP น้อยที่สุดและต้องใช้ Symphony 6.0 ซึ่งทำงานเร็วขึ้น 20.65% ใน PHP 8.1 การออกแบบใหม่สำหรับคำสั่ง route:list ช่วยลดมุมมองที่ยุ่งเหยิงของคำสั่งที่ซับซ้อน Laravel 9 ยังมีส่วนต่อประสาน Query Builder ที่มีประสิทธิภาพยิ่งขึ้น และคุณสมบัติอื่นๆ อีกมากมาย
อย่างไรก็ตาม ปัจจัยบางอย่างส่งผลให้ประสิทธิภาพของ Laravel ช้าลง นักพัฒนาหลายคนมีนิสัยที่ไม่ดี เช่น การอัปโหลดรูปภาพจำนวนมาก ใช้ PHP เวอร์ชันเก่า รวบรวมข้อมูลที่ไม่จำเป็นจำนวนมาก หรือการละเลยที่จะลบไฟล์ที่ไม่จำเป็นออกจากโครงการของตน
สถาปัตยกรรม MVC PHP ที่ซับซ้อนของ Laravel และไลบรารีที่เกี่ยวข้องนั้นผสมผสานกันอย่างลงตัวของการรักษาความปลอดภัย ประสิทธิภาพ และความสามารถในการใช้งาน นั่นเป็นเหตุผลที่ควรเรียนรู้เคล็ดลับการเพิ่มประสิทธิภาพ Laravel บางอย่างเพื่อให้ได้ประสิทธิภาพที่สูงขึ้น
เรื่องความเร็วของเว็บไซต์
การแสดงครั้งแรกเป็นสิ่งที่ยั่งยืนสำหรับภาพลักษณ์ของแบรนด์ ความเร็วของเว็บไซต์คือการแสดงผลครั้งแรกที่คุณสร้างให้กับผู้เยี่ยมชมเว็บไซต์ของคุณ คุณรู้หรือไม่ว่าลูกค้าออนไลน์ประมาณ 50% ละทิ้งเว็บไซต์ที่ใช้เวลาในการโหลดนานกว่าสามวินาที

ความเร็วของเว็บไซต์ (หรือที่เรียกกันว่าประสิทธิภาพของเว็บไซต์) หมายถึงระยะเวลาที่เบราว์เซอร์ใช้ในการโหลดหน้าเว็บที่ทำงานได้อย่างสมบูรณ์จากเว็บไซต์ใดเว็บไซต์หนึ่ง ดังนั้นจึงส่งผลกระทบโดยตรงต่อประสบการณ์ของผู้ใช้ (UX) และอัตรา Conversion
ประสิทธิภาพของเว็บไซต์ยังส่งผลต่อการจัดอันดับ SEO ของคุณในเครื่องมือค้นหา หากไซต์หลายแห่งเสนอข้อมูลที่ผู้เยี่ยมชมของคุณค้นหา หน้าเว็บที่เร็วขึ้นจะปรากฏขึ้นก่อน หากไซต์ของคุณซบเซา ก็จะมีโอกาสน้อยที่จะอยู่ในอันดับสูงในผลการค้นหาของ Google
ดังนั้น คุณควรลงทุนเวลาในการใช้โซลูชันการเพิ่มประสิทธิภาพเว็บไซต์ที่มีประสิทธิภาพ
ประโยชน์ของการเพิ่มประสิทธิภาพ Laravel
แม้ว่าคุณอาจออกแบบแอปพลิเคชัน Laravel ที่ยอดเยี่ยม แต่ก็ยังมีช่องว่างสำหรับการปรับปรุงเพื่อให้ได้ความสมบูรณ์แบบอยู่เสมอ การเพิ่มประสิทธิภาพ Laravel ของคุณมีประโยชน์หลายประการ:
- การส่งเสริมการเติบโตของธุรกิจ: การปรับปรุงประสิทธิภาพของ Laravel หมายถึงเว็บไซต์หรือแอปพลิเคชันที่มีประสิทธิภาพมากขึ้น เป็นผลให้โอกาสในการเข้าถึงผู้ชมที่กว้างขึ้นของคุณเพิ่มขึ้น
- สภาพแวดล้อมการพัฒนาที่ราบรื่นยิ่งขึ้น: เคล็ดลับการปรับประสิทธิภาพให้เหมาะสมสำหรับ Laravel ที่แสดงด้านล่างช่วยให้นักพัฒนาประหยัดเวลาในการเขียนโค้ด ทำงานได้เร็วขึ้น และใช้ทรัพยากรน้อยลง
- จัดการทราฟฟิกได้ดีขึ้น: การเรียนรู้วิธีใช้ระบบคิว Laravel อย่างชาญฉลาดช่วยให้เว็บไซต์ของคุณจัดการหมายเลขคำขอเมื่อเติบโตขึ้นและดึงข้อมูลปริมาณมาก
วิธีวัดประสิทธิภาพของ Laravel
คุณทุ่มเทเวลาและความพยายามอย่างมากในการทำให้เว็บแอปสุดเก๋ของคุณทำงานได้ แต่หากช้าจะไม่มีใครใช้ และคุณจะเป็นเหมือนหมีที่ปวดหัว นี่คือที่มาของการทดสอบประสิทธิภาพของ Laravel
คุณสามารถใช้เครื่องมือต่างๆ เพื่อทำการทดสอบประสิทธิภาพกับผลงานอันล้ำค่าของคุณ ลองมาดูที่ทั้งสามของพวกเขา
1. Blackfire.io

Blackfire.io เป็นเครื่องมือสร้างโปรไฟล์เว็บแอปที่ใช้งานง่ายซึ่งระบุเส้นทางที่จำเป็น เพื่อให้คุณสามารถจดจ่อกับส่วนสำคัญของแอป PHP ของคุณได้
ประกอบด้วยคุณลักษณะการตรวจสอบประสิทธิภาพการทำงานที่หลากหลาย และแสดงการใช้หน่วยความจำ เวลาของ CPU ตลอดจน I/O Blackfire.io ยังให้คุณจัดเรียงการเรียกใช้ฟังก์ชันและเส้นทางเพื่อดูว่าแอปพลิเคชัน Laravel ของคุณทำงานอย่างไร
2. Laravel Dusk

Laravel Dusk ให้คุณทดสอบแอปพลิเคชันของคุณและตรวจสอบว่าแอปพลิเคชันทำงานอย่างไรจากมุมมองของผู้ใช้ คุณไม่จำเป็นต้องติดตั้ง Selenium หรือ JDK เพื่อใช้ Dusk เนื่องจากมี Chromedriver เป็นค่าเริ่มต้น
ด้วย API ที่เป็นมิตรกับนักพัฒนา เช่น Dusk คุณสามารถทำให้การทดสอบเบราว์เซอร์เป็นแบบอัตโนมัติ ไม่จำเป็นต้องมีกระบวนการที่เข้มงวดซึ่ง ChromeDriver และ PHP WebDriver ต้องการแยกต่างหาก
นอกจากนี้ Dusk ยังเก็บภาพหน้าจอและเอาต์พุตคอนโซลเบราว์เซอร์ของการทดสอบที่ล้มเหลว เพื่อให้คุณสามารถตรวจจับจุดบกพร่องได้
3. LoadForge

LoadForge ปรับให้เหมาะกับ Laravel จะสแกนเว็บไซต์ของคุณโดยอัตโนมัติ ระบุปัญหา และแสดงกราฟที่ครอบคลุมพร้อมกับสถิติประสิทธิภาพสำหรับทุกหน้า
ใน Chrome LoadForge ช่วยให้คุณสามารถจับภาพการกระทำของเบราว์เซอร์และแปลงเป็นการทดสอบ LoadForge ในภายหลัง ด้วยวิธีนี้ คุณจะสามารถสร้างประสบการณ์ผู้ใช้ที่สมจริงด้วยการจำลองการเข้าสู่ระบบ การนำทางเว็บไซต์ของคุณ หรือแม้แต่การสั่งซื้อ
วิธีเพิ่มประสิทธิภาพ Laravel (17 วิธี)
ในส่วนนี้ เราจะพูดถึงแนวคิดและยุทธวิธีที่ดีที่สุดบางส่วนด้วยหวีซี่ถี่ๆ เพื่อช่วยปรับปรุงประสิทธิภาพของ Laravel
1. แคชเส้นทาง
การแคชเส้นทางเป็นคุณสมบัติที่ยอดเยี่ยม โดยเฉพาะอย่างยิ่งสำหรับแอปที่มีการกำหนดค่าและเส้นทางจำนวนมากกระจายอยู่ในโค้ด เป็นกลุ่มของเส้นทางที่บรรจุในคำสั่งเดียวเพื่อช่วยลดงานที่น่าเบื่อของการสร้างแผนภูมิเส้นทางด้วยตนเอง ส่งผลให้หน้าเว็บไซต์ของคุณโหลดเร็วขึ้นมาก
การแคชเส้นทางช่วยให้ Laravel สามารถดึงเส้นทางเป็นระยะจากแคชที่คอมไพล์ล่วงหน้า แทนที่จะต้องเริ่มต้นจากจุดเริ่มต้นสำหรับผู้ใช้ใหม่แต่ละคน
ใช้คำสั่งนี้เพื่อแคชข้อมูลการกำหนดเส้นทางที่ต้องการ:
php artisan route:cache
โปรดทราบว่าแคชจะหมดอายุเมื่อผู้ใช้ออกจากไซต์ของคุณ สิ่งสำคัญคือต้องเรียกใช้คำสั่งแคชเส้นทางทุกครั้งหลังจากทำการเปลี่ยนแปลงโครงสร้าง (เช่น กำหนดเส้นทางไฟล์และการกำหนดค่า) ไปยังเว็บไซต์ของคุณ เนื่องจากการแก้ไขใดๆ ที่ทำในภายหลังจะไม่มีผล
หากคุณต้องการล้างแคชเส้นทาง ให้รันคำสั่งต่อไปนี้:
php artisan route:clear
2. เพิ่มประสิทธิภาพนักแต่งเพลง
Laravel ใช้เครื่องมือแยกต่างหากที่เรียกว่า Composer เพื่อจัดการการพึ่งพาที่แตกต่างกัน เมื่อคุณติดตั้ง Composer ในครั้งแรก โปรแกรมจะโหลดการพึ่งพา dev ลงในระบบของคุณโดยค่าเริ่มต้น
การพึ่งพาเหล่านี้มีประโยชน์สำหรับการพัฒนาเว็บไซต์ แต่เมื่อไซต์ของคุณทำงานได้อย่างสมบูรณ์แล้ว ก็ไม่มีความจำเป็นอีกต่อไป และที่จริงแล้ว เว็บไซต์เหล่านี้จะทำให้ช้าลงเท่านั้น
เมื่อใช้ Composer เพื่อติดตั้งแพ็คเกจ ให้ใช้พารามิเตอร์ --no-dev
และ -o
ดังต่อไปนี้เพื่อลบการพึ่งพา dev:
composer install --prefer-dist --no-dev -o
คำสั่งนี้อนุญาตให้ Composer สร้างไดเร็กทอรีเพื่อเพิ่มประสิทธิภาพตัวโหลดอัตโนมัติและเพิ่มประสิทธิภาพ มันเพียงร้องขอให้เรียกคืนและบรรจุการแจกจ่ายอย่างเป็นทางการโดยไม่ต้องพึ่งพาผู้พัฒนา
ระวังอย่ากำจัดการพึ่งพารันไทม์ใดๆ การทำเช่นนี้อาจเป็นอันตรายต่อประสิทธิภาพของเว็บไซต์ของคุณหรือแม้กระทั่งทำให้เกิดความผิดพลาดได้
3. ลดบริการโหลดอัตโนมัติ
เป้าหมายของ Laravel คือการทำให้กระบวนการพัฒนาเป็นไปอย่างราบรื่นสำหรับนักพัฒนามากที่สุด ตัวอย่างเช่น เมื่อคุณเปิด Laravel มันจะโหลดผู้ให้บริการจำนวนมากโดยอัตโนมัติซึ่งอยู่ในไฟล์ config/app.php เพื่อช่วยให้คุณเริ่มต้นโครงการได้อย่างรวดเร็ว
แม้ว่า Laravel จะเป็นขั้นตอนที่เป็นประโยชน์ แต่คุณไม่จำเป็นต้องใช้บริการเหล่านี้ทั้งหมดเพื่อสร้างแอปพลิเคชัน
ยกตัวอย่าง REST API คุณไม่จำเป็นต้องใช้บริการ เช่น ดูผู้ให้บริการหรือผู้ให้บริการเซสชัน นอกจากนี้ นักพัฒนาจำนวนมากไม่ปฏิบัติตามการตั้งค่าเฟรมเวิร์กเริ่มต้น คุณสามารถปิดใช้งานบริการที่ไม่จำเป็นต่อความต้องการของคุณได้ (เช่น ผู้ให้บริการการแบ่งหน้า ผู้ให้บริการการแปล ผู้ให้บริการตรวจสอบสิทธิ์ ฯลฯ)
คุณจะสามารถปรับปรุงความเร็วของแอปพลิเคชัน Laravel ได้โดยใช้หลักการเดียวกันกับแอปอื่นๆ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ลบบริการที่สำคัญใดๆ ออก และตรวจสอบทุกอย่างอีกครั้งก่อนที่จะวางค้อน
4. ใช้คำสั่ง Artisan และ Cache อย่างมีประสิทธิภาพ
Artisan เป็นเครื่องมือบรรทัดคำสั่งยอดนิยมที่มาพร้อมกับ Laravel ช่วยให้นักพัฒนาสามารถทำงานที่เกิดซ้ำและซับซ้อนได้โดยอัตโนมัติ ผู้สร้างเว็บไซต์ยังสามารถใช้เพื่อทดสอบและสร้างคำสั่งได้อีกด้วย
การใช้คำสั่ง Artisan อย่างชาญฉลาดสามารถเพิ่มประสิทธิภาพแอปของคุณได้ ด้านล่างนี้ เราได้แสดงรายการคำสั่งแคชที่ดีที่สุดหลายคำสั่งที่คุณสามารถใช้ได้
การกำหนดค่าแคช
การกำหนดค่าแคชเป็นคำสั่งที่ยอดเยี่ยมในการเพิ่มความเร็ว มันรวบรวมค่าการกำหนดค่าของแอปพลิเคชันทั้งหมดของคุณเป็นไฟล์เดียวเพื่อให้กรอบงานสามารถโหลดเร็วขึ้น สิ่งที่คุณต้องทำคือเรียกใช้:
php artisan config:cache
โปรดทราบว่าคุณไม่ควรรันคำสั่ง config cache ระหว่างการพัฒนาในเครื่อง เนื่องจากอาจต้องเปลี่ยนการตั้งค่าการกำหนดค่าบ่อยๆ ตลอดการพัฒนาแอปของคุณ
หากต้องการล้างแคชการกำหนดค่า ให้รันคำสั่งนี้:
php artisan config:clear
มุมมองแคช
มุมมองแคชเป็นอีกแง่มุมหนึ่งของแอปพลิเคชันที่มีแคช แคชมุมมองจัดเก็บสร้างเทมเพลต Blade เพื่อเพิ่มความเร็วของโปรเจ็กต์ของคุณ คุณสามารถใช้คำสั่ง artisan ด้านล่างเพื่อคอมไพล์มุมมองทั้งหมดด้วยตนเองและปรับประสิทธิภาพให้เหมาะสม:
php artisan view:cache
อย่าลืมล้างแคชเมื่อคุณอัปโหลดรหัสใหม่ มิฉะนั้น Laravel จะใช้มุมมองแบบเก่าของคุณ และคุณจะใช้เวลามากมายในการแก้ไขปัญหานี้ เรียกใช้คำสั่งนี้เพื่อล้างแคชมุมมอง:
php artisan view:clear
การแคชแอปพลิเคชัน
นี่คือแคชหลักใน Laravel มันบันทึกข้อมูลทั้งหมดที่คุณแคชด้วยตนเองในแอพของคุณ การใช้แคชของ Laravel เป็นวิธีที่ชาญฉลาดในการเร่งความเร็วของข้อมูลที่เข้าถึงโดยทั่วไปและเพิ่มประสิทธิภาพการทำงานของ Laravel หากคุณใช้แท็กหรือที่เก็บข้อมูลแคชหลายอัน คุณสามารถล้างองค์ประกอบบางอย่างของแคชได้เท่านั้น
นี่คือคำสั่งของช่างเพื่อล้างแคช Laravel:
php artisan cache:clear
โปรดทราบว่าคำสั่งนี้จะไม่ลบเส้นทาง การกำหนดค่า หรือดูแคชที่อยู่ในโฟลเดอร์ /bootstrap/cache/
5. ลดการใช้แพ็คเกจ
เนื่องจากเป็นเฟรมเวิร์กโอเพนซอร์สที่มีชุมชนที่มีประชากรหนาแน่น จึงเป็นเรื่องปกติที่จะเห็นแพ็กเกจที่ออกหรือเวอร์ชันใหม่ในแพ็กเกจที่มีอยู่ใน Laravel มากขึ้นเรื่อยๆ คุณสามารถใช้และคุณลักษณะเหล่านี้ได้โดยตรงในแอปพลิเคชันของคุณ
คุณต้องรวมแพ็กเกจเหล่านี้ในไฟล์ composer.json
Laravel จะติดตั้งพร้อมกับการอ้างอิงในภายหลัง
อย่างไรก็ตาม มีปัจจัยสองสามประการที่ต้องพิจารณาก่อนเพิ่มแพ็คเกจใหม่ให้กับแอปพลิเคชันใดๆ ไม่ได้ออกแบบมาทั้งหมดเพื่อจุดประสงค์เดียวกัน เป็นต้น แพ็คเกจบางตัวยังถูกสร้างขึ้นเพื่อทำหน้าที่ที่หลากหลาย
เมื่อคุณรวมแพ็คเกจที่มีการขึ้นต่อกันจำนวนมาก ขนาดของแอปพลิเคชันจะเพิ่มขึ้น และประสิทธิภาพจะลดลงในที่สุด นั่นเป็นเหตุผลที่จำเป็นต้องตรวจสอบการขึ้นต่อกันอย่างใกล้ชิดก่อนที่จะเพิ่มแพ็คเกจใดๆ
6. อัปเกรดเป็นเวอร์ชันล่าสุดของ PHP
เช่นเดียวกับโค้ดหรือโปรแกรมซอฟต์แวร์อื่นๆ การอัปเดตเวอร์ชัน PHP เป็นเวอร์ชันล่าสุดจะเป็นการดีที่สุดเสมอ
เหตุผลหลักในการใช้ PHP เวอร์ชันล่าสุดคือความปลอดภัย เป็นเวลาสองปี ทุก ๆ รุ่นของ PHP จะได้รับแพตช์ความปลอดภัยและการแก้ไขข้อบกพร่อง ระบบของคุณอาจตกอยู่ในอันตรายหากคุณยังคงใช้เวอร์ชันก่อนหน้าซึ่งไม่ได้รับการดูแลอีกต่อไป
นักพัฒนาหลายคนอาจไม่ทราบว่ายิ่ง PHP เวอร์ชันเก่าได้รับ ประสิทธิภาพการทำงานก็จะช้าลง เพื่อเพิ่มประสิทธิภาพ PHP เวอร์ชันปัจจุบันมีการปรับปรุงประสิทธิภาพที่โดดเด่น เช่น การดำเนินการตามคำขอ enums ไฟเบอร์ และแคชการสืบทอดที่เร็วขึ้น
ที่ Kinsta เราใช้ PHP เวอร์ชันหลักล่าสุด (PHP 8.1) สำหรับทุกสภาพแวดล้อม เพื่อให้ผู้ใช้ได้รับประโยชน์จากความสามารถที่กว้างขวางของแพลตฟอร์มและเพิ่มประสิทธิภาพแอปของตนเพื่อความเร็วและประสิทธิภาพสูงสุด
7. ใช้คิว
การถ่ายโอนงานที่ช้าไปยังงานคิวเป็นเทคนิคง่ายๆ ในการเพิ่มความเร็วของแอปพลิเคชัน Laravel ของคุณให้สูงสุดอย่างรวดเร็ว
บางครั้งคุณไม่จำเป็นต้องใช้ข้อมูลใน UI ทันที ในกรณีนี้ งานดังกล่าวสามารถเลื่อนออกไปและเรียกใช้ในภายหลังในเบื้องหลังได้ด้วยกระบวนการแยกต่างหาก (เช่น การส่งอีเมล) การดำเนินการนี้สามารถเพิ่มประสิทธิภาพคำขอออนไลน์ของแอปของคุณได้อย่างมาก
ตัวอย่างการใช้คิวเพื่อส่งอีเมล (ที่มาของภาพ: GeekFlare)
Laravel รองรับไดรเวอร์คิวที่หลากหลาย เช่น IronMQ, Redis, Amazon SQS และ Beanstalkd นอกจากนี้ยังมีตัวทำงานคิวในตัวที่สามารถดำเนินการได้โดยใช้คำสั่งต่อไปนี้:
php artisan queue:work
คุณสามารถเพิ่มงานใหม่ในคิวโดยใช้วิธีนี้:
Queue::push('SendEmail', array('message' => $message));
ใช้วิธีการด้านล่างผ่าน Carbon หากคุณต้องการเลื่อนการดำเนินการของงานที่อยู่ในคิว ตัวอย่างเช่น สมมติว่าคุณต้องการกำหนดเวลางานที่ส่งอีเมลไปยังลูกค้า 10 นาทีหลังจากที่พวกเขาสร้างบัญชี:
$date = Carbon::now()->addMinutes(10); Queue::later($date, '[email protected]', array('message' => $message));
8. ใช้เครื่องมือการปรับใช้เพื่ออุทธรณ์คำสั่งทั้งหมด
ตกลง เราตระหนักดีว่านี่ไม่ใช่เคล็ดลับประสิทธิภาพที่แท้จริงสำหรับ Laravel แต่เป็นเทคนิคที่ช่วยประหยัดเวลาได้อย่างยอดเยี่ยมสำหรับนักพัฒนาซึ่งมีความสำคัญต่อการปรับปรุงประสิทธิภาพการทำงาน
Deployer เป็นเครื่องมือการปรับใช้ PHP ที่ให้คุณปรับใช้โค้ดของคุณกับเซิร์ฟเวอร์ต่างๆ ประกอบด้วยสคริปต์สำหรับเฟรมเวิร์กยอดนิยม เช่น Laravel, Symfony, Zend, Magento, CakePHP และอื่นๆ
หากคุณไม่เคยจัดการกับ Composer มาก่อนเพื่อจัดการการพึ่งพาโครงการ คุณจะทำความคุ้นเคยกับ Deployer ได้อย่างรวดเร็ว ใช้เครื่องมือนี้เพื่อทำให้การดำเนินการปรับใช้เครื่องทั้งหมดของคุณเป็นแบบอัตโนมัติ เช่น การเปิดใช้เซิร์ฟเวอร์ การโคลนไปยังเซิร์ฟเวอร์ระยะไกล และการตรวจสอบโฮสต์ระยะไกล
Deployer มีการตั้งค่าสำหรับการเรียกใช้ฟังก์ชันการย้ายข้อมูล seedes และการปรับให้เหมาะสมในแอปพลิเคชัน Laravel ด้วยคำสั่งเดียว:
php deployer.phar deploy production
9. ใช้ Lumen สำหรับโครงการขนาดเล็ก
มีบางครั้งที่การพัฒนาแอปพลิเคชั่นขนาดเล็ก (เช่น แอพมือถือหรือแอพเชิงมุม) ไม่ต้องการการใช้เฟรมเวิร์กฟูลสแตกอย่าง Laravel ในสถานการณ์สมมตินี้ ให้พิจารณาใช้ Lumen แทน
Lumen เป็นไมโครเฟรมเวิร์กที่พัฒนาโดยผู้สร้าง Laravel คนเดียวกัน เช่นเดียวกับ Laravel รุ่นที่เบากว่า Lumen นั้นเกี่ยวกับความเร็วและประสิทธิภาพสำหรับไมโครเซอร์วิส ต้องใช้การตั้งค่าขั้นต่ำและพารามิเตอร์การกำหนดเส้นทางสำรองเมื่อสร้างเว็บแอป ซึ่งช่วยให้กระบวนการพัฒนาเร็วขึ้น
ตัวอย่างเช่น Lumen สามารถรองรับคำขอได้ 100 รายการต่อวินาที คุณยังสามารถรวมเครื่องมือหรือแพ็คเกจจากบุคคลที่สามเพื่อรับคุณสมบัติใหม่ นอกจากนี้ Lumen ยังรองรับทุกแพลตฟอร์มและให้คุณอัปเกรดเป็น Laravel ได้
10. เลเวอเรจ JIT Compiler
PHP เป็นภาษาฝั่งเซิร์ฟเวอร์ที่ต้องใช้ล่ามเพื่อแปลรหัสเป็นไบต์โค้ด ซึ่งคอมพิวเตอร์สามารถเข้าใจได้
กระบวนการนี้ใช้เวลานานและใช้ทรัพยากรเป็นจำนวนมาก นั่นเป็นเหตุผลที่โปรแกรมเมอร์ใช้กลไกการเขียนสคริปต์ เช่น เอ็นจิ้น Zend เพื่อรันรูทีนย่อย C ที่ต้องทำซ้ำทุกครั้งที่มีการดำเนินการแอปพลิเคชัน ซึ่งจะทำให้แอปของคุณทำงานช้าลง
เพื่อประโยชน์ด้านประสิทธิภาพ devs ใช้คอมไพเลอร์แบบ just-in-time (JIT) เพื่อทำซ้ำขั้นตอนนั้นเพียงครั้งเดียว HHVM ซึ่งถูกคิดค้นและใช้กันอย่างแพร่หลายโดย Facebook เป็นคอมไพเลอร์ JIT ที่ต้องการสำหรับ Laravel Etsy, Wikipedia และไซต์อื่น ๆ อีกหลายสิบแห่งก็ใช้เช่นกัน
11. ใช้ประโยชน์จาก Eager Loading
ในการโต้ตอบกับฐานข้อมูลอย่างสนุกสนาน Laravel ได้จัดเตรียมตัวสร้างแผนที่เชิงวัตถุ (ORM) อันยอดเยี่ยมที่เรียกว่า Eloquent ช่วยให้คุณสามารถเชื่อมโยงตารางและจัดการกับฟังก์ชัน CRUD ทั้งหมดใน PHP ในรูปแบบที่เรียบง่าย
เมื่อคุณดึงโมเดลจากฐานข้อมูลแล้วดำเนินการประมวลผลความสัมพันธ์แบบใดๆ ก็ตาม ข้อมูลความสัมพันธ์จะ "โหลดแบบขี้เกียจ" ซึ่งหมายความว่าข้อมูลจะไม่ถูกโหลดจนกว่าคุณจะเข้าถึงความสัมพันธ์
คุณจะสิ้นสุดการเรียกใช้ข้อความค้นหา N+1 เพื่อค้นหาคำตอบของคุณด้วยการโหลดแบบ Lazy Loading ดังแสดงในตัวอย่างต่อไปนี้:
$books = AppBook::all(); foreach ($books as $book) { echo $book->author->name; }
ในการเพิ่มประสิทธิภาพ Laravel และแก้ไขปัญหาการสืบค้น N+1 Laravel สามารถ "โหลดอย่างกระตือรือร้น" ข้อมูลดังที่แสดงด้านล่าง:
$books = AppBook::with('author')->get(); foreach ($books as $book) { echo $book->author->name; }
12. บีบอัดรูปภาพ
รูปภาพมีส่วนสำคัญในการออกแบบเว็บไซต์ สิ่งเหล่านี้จำเป็นสำหรับการปรับปรุงประสบการณ์ผู้ใช้ (UX) และเพิ่มอันดับการค้นหา
เวลาในการโหลดเฉลี่ยของเว็บไซต์คือสองวินาที รูปภาพจำนวนมากทำให้ความเร็วในการโหลดของไซต์ช้าลง หากคุณมีเว็บไซต์ที่ช้า มีโอกาสสูงที่คุณจะสูญเสียผู้เข้าชมจำนวนมาก
การบีบอัดรูปภาพจะย่อขนาดรูปภาพต้นฉบับของคุณให้เล็กที่สุดโดยไม่ทำให้คุณภาพลดลง ซึ่งช่วยในการปรับความเร็วไซต์ให้เหมาะสม ด้วยเหตุผลนี้ Laravel เสนอตัวเลือกการบีบอัดรูปภาพอย่างเรียบร้อย เช่น TinyPNG, reSmush.it หรือ ImageMin
13. ใช้ CDN
การใช้เครือข่ายการจัดส่งเนื้อหา (CDN) สามารถเพิ่มประสิทธิภาพ Laravel ได้อย่างแท้จริง การโหลดเนื้อหาแบบคงที่จากเซิร์ฟเวอร์ CDN แทนที่จะโหลดโดยตรงจากเครื่องที่โฮสต์ไฟล์ของคุณ ข้อมูลจะเข้าถึงผู้ชมของคุณได้รวดเร็วยิ่งขึ้น
กล่าวคือจะแคชเวอร์ชันล่าสุดของไซต์ของคุณไปยังเครือข่ายเซิร์ฟเวอร์คลาวด์ทั่วโลก ดังนั้น แม้ว่าผู้เยี่ยมชมของคุณจะอยู่ห่างจากตำแหน่งของคุณตามภูมิศาสตร์ พวกเขาก็ยังสามารถเข้าถึงเว็บไซต์ของคุณได้อย่างรวดเร็ว
Kinsta CDN ขับเคลื่อนโดย Cloudflare และให้บริการฟรี อนุญาตให้ส่งไฟล์แคชของเว็บไซต์ของคุณจากโดเมนหลักของคุณแทนที่จะเป็นโดเมน CDN สำรอง ซึ่งจะช่วยเพิ่มอันดับ SEO ของคุณ
Kinsta CDN ยังช่วยในการลบส่วนประกอบที่ไม่ต้องการออกจากไฟล์ JavaScript (JS) และ CSS ของคุณ วิธีนี้ช่วยลดระยะเวลาในการโหลดหน้าเว็บในไซต์ของคุณอย่างมากและลดการใช้แบนด์วิดท์
14. ย่อ JS และ CSS Code ให้เล็กสุด
เพิ่มประสิทธิภาพ Laravel ของคุณโดยย่อขนาดไฟล์ JavaScript และ CSS ของคุณก่อนดำเนินการกับกระบวนการรวมกลุ่มเนื้อหา
ขั้นตอนการย่อนี้จะลบโค้ดที่ไม่จำเป็นออกจากแอปพลิเคชันของคุณ เช่น ช่องว่าง ความคิดเห็น และการเปลี่ยนชื่อตัวแปรโดยใช้ชื่อที่สั้นลง หากจำเป็น คุณสามารถปรับขนาดภาพเพื่อสร้างภาพขนาดย่อได้
ด้วยเหตุนี้ คุณจะปรับปรุง UX ของคุณในขณะที่ลดการเรียก HTTP ด้วย
15. จ้างการรวมกลุ่มสินทรัพย์
มีเครื่องมือหลายอย่างสำหรับบีบอัดและรวมไฟล์เช่น Javascript และ CSS เป็นไฟล์เดียว เช่น Laravel Mix และ Laravel Packer
แอปพลิเคชัน Laravel ทั้งหมดมี Laravel Mix เป็นค่าเริ่มต้น เป็น API ที่ใช้งานง่ายซึ่งใช้สำหรับสร้าง Webpack build สำหรับแอป PHP ของคุณ โดยใช้ JavaScript ทั่วไปและตัวประมวลผลล่วงหน้า CSS
สมมติว่าคุณต้องการคอลเลกชันของรูปแบบรูปแบบบางอย่างสำหรับไฟล์แอปพลิเคชันของคุณ คุณอาจป้อนข้อมูลดังนี้:
mix.styles([ 'public/css/vendor/normalize.css', 'public/css/styles.css' ], 'public/css/all.css');
ตอนนี้ Laravel Mix จะสร้างไฟล์ all.css
จากไฟล์ normalize.css
และ style.css
โดยอัตโนมัติ ดังนั้น แทนที่จะแยกแต่ละสไตล์ชีตแยกกัน คุณสามารถรวมเป็นไฟล์ all.css ไฟล์เดียวได้
Laravel Packer เป็นเครื่องมือบรรทัดคำสั่งที่สามารถติดตั้งผ่าน Composer ช่วยให้คุณลดและรวมโค้ด JS และ CSS ของคุณ อย่างไรก็ตาม ใช้งานยากกว่า Laravel Mix
แม้ว่าคำแนะนำนี้จะช่วยเพิ่มประสิทธิภาพการทำงานของ Laravel ได้เป็นอย่างดี แต่การรวมไฟล์จำนวนมากเข้าด้วยกันจะทำให้มีขนาดใหญ่และให้ผลตรงกันข้ามในที่สุด ในการแก้ปัญหานี้ ให้ใช้ Laravel Mix เพื่อลดขนาดไฟล์ของคุณลงโดยเรียกใช้คำสั่งนี้:
npm run prod
16. ไลบรารีที่รวมลิมิต
Laravel ให้อิสระแก่คุณในการเพิ่มห้องสมุดได้มากเท่าที่คุณต้องการ แม้ว่าคุณลักษณะนี้จะเป็นฟีเจอร์ที่ยอดเยี่ยม แต่การเพิ่มไลบรารี่จำนวนมากจะสร้างแรงกดดันอย่างมากต่อประสิทธิภาพของแอปพลิเคชันของคุณ นอกจากนี้ยังสามารถส่งผลต่อประสบการณ์ของผู้ใช้ทั้งหมด
ดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องสแกนข้อมูลของไลบรารีทั้งหมดที่ใช้อยู่ในโค้ดในปัจจุบัน คุณสามารถค้นหาไลบรารีเหล่านี้ได้ในไฟล์ config/app.php file
ขณะตรวจสอบห้องสมุด ให้ลบสิ่งที่คุณรู้ว่าไม่มีประโยชน์สำหรับคุณอีกต่อไป
ยังเป็นความคิดที่ดีที่จะตรวจสอบ composer.json
สำหรับการขึ้นต่อกันที่ไม่จำเป็น
17. พิจารณาใช้พระธาตุใหม่
New Relic คือเครื่องมือจัดการประสิทธิภาพแอปพลิเคชัน (APM) ที่รวมโดยนักพัฒนาในแอป Laravel ใช้ในการวิเคราะห์และตรวจสอบสถิติที่สะท้อนถึงประสิทธิภาพเพื่อเพิ่มประสิทธิภาพและหลีกเลี่ยงการหยุดชะงักในแบบเรียลไทม์
New Relic สามารถช่วยคุณในการประเมินคะแนน Apdex ของคุณและวัดว่าแอปของคุณเป็นอย่างไรเมื่อเปรียบเทียบกับคู่แข่งในตลาด นอกจากนี้ยังช่วยให้คุณสามารถสร้างนโยบายการแจ้งเตือนตามเกณฑ์ของคุณ
หากคุณไม่ต้องการสมัครใช้บริการของบุคคลที่สาม คุณสามารถใช้เครื่องมือ APM ของ Kinsta มันสามารถช่วยคุณในการค้นหาปัญหาคอขวดของประสิทธิภาพ PHP บนไซต์ WP ของคุณโดยไม่มีค่าใช้จ่ายเพิ่มเติม
สรุป
Laravel เป็นเฟรมเวิร์ก PHP ที่เติบโตอย่างรวดเร็ว และมีบทช่วยสอนมากมายสำหรับผู้ใช้ทุกประเภทในการเรียนรู้ Laravel โดยไม่คำนึงถึงระดับความรู้ของพวกเขา
เมื่อพูดถึงประสบการณ์ของผู้ใช้ในโลกดิจิทัล ประสิทธิภาพเป็นปัจจัยสำคัญในการสร้างสถานะออนไลน์ที่แข็งแกร่ง ไม่น่าแปลกใจเลยที่องค์กรต่างๆ ทุ่มเทเวลาและทรัพยากรมากขึ้นเพื่อมอบ UX คุณภาพสูง
หากคุณเป็นนักพัฒนาซอฟต์แวร์ Laravel คุณจะรู้สึกมั่นใจว่าการใช้วิธีการที่อธิบายไว้ข้างต้น คุณจะสังเกตเห็นการปรับปรุงประสิทธิภาพที่สำคัญและสามารถรักษาแอปพลิเคชันที่ทำงานได้อย่างราบรื่น
คุณใช้วิธีอื่นใดในการเร่งความเร็วแอป Laravel ของคุณ แจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง