cari
Rumahrangka kerja phpLaravelBagaimana untuk mengoptimumkan prestasi dalam Laravel8? Perkongsian Petua Pengoptimuman

Bagaimana untuk mengoptimumkan prestasi dalam Laravel8? Perkongsian Petua Pengoptimuman

Panduan ini menyenaraikan pelbagai petua pengoptimuman prestasi, daripada pengoptimuman pantas kepada penalaan mendalam, yang boleh membantu membina aplikasi Laravel berprestasi tinggi.

Ramai pelajar di Enlightn membantu kami menulis panduan ini. Jika anda mencari alat prestasi automasi atau keselamatan Laravel, anda mungkin ingin melawati tapak web ini.

Mengapa meningkatkan prestasi?

Tidak dinafikan bahawa pengguna lebih suka apl yang lebih pantas daripada yang dimuatkan dengan perlahan .

Menurut kajian Google, 53% pengguna pada peranti mudah alih akan kehilangan (memilih untuk meninggalkan) jika tapak web mengambil masa lebih daripada 3 saat untuk dimuatkan. Dan purata masa memuatkan untuk tapak web mudah alih ialah kira-kira 15 saat. Inilah sebabnya mengapa prestasi penting!

Setiap saat tambahan yang diperlukan apl anda untuk dimuatkan, semakin rendah kadar penukaran pelanggan anda. Nasib baik, untuk aplikasi Laravel, ini bukan masalah yang sukar untuk diselesaikan.

1 Gunakan keupayaan prestasi terbina dalam untuk menang dengan cepat

Laravel mempunyai beberapa ciri peningkatan prestasi terbina dalam yang boleh digunakan dengan konfigurasi mudah.

Peningkatan prestasi yang paling kritikal ialah cache laluan. Tahukah anda bahawa setiap kali aplikasi Laravel anda dilancarkan, perisian tengah ditentukan, alias diselesaikan, kumpulan laluan diselesaikan, tindakan pengawal laluan ditentukan dan parameter permintaan diproses?

Anda boleh menggunakan arahan Artisan route:cache untuk menyimpan semua maklumat penghalaan yang diperlukan, dengan itu melangkau pemprosesan penghalaan:

php artisan route:cache

Arahan ini boleh memberi anda peningkatan prestasi 5x ganda! Ia adalah pengoptimuman yang paling mudah dan paling berkesan.

Selain caching laluan, Laravel juga menyediakan yang berikut:

Petua: Anda harus memastikan untuk menambah perintah cache di atas pada skrip penggunaan anda supaya ia dicache semula setiap kali anda menggunakan. Jika tidak, sebarang perubahan pada fail penghalaan atau konfigurasi tidak akan ditunjukkan dalam apl.

2. Optimumkan Komposer

Kesilapan biasa yang dilakukan oleh pembangun Laravel ialah memasang semua kebergantungan dalam mod pengeluaran. Beberapa pakej pembangunan, seperti Pencucuhan, rekod pertanyaan, log dan pembuangan dalam ingatan, menyediakan mesej ralat mesra dengan konteks dan memudahkan penyahpepijatan. Walaupun ini berguna dalam pembangunan, ia boleh melambatkan aplikasi anda dalam pengeluaran.

Dalam skrip penggunaan, pastikan anda menggunakan pilihan -no-dev apabila menggunakan Composer untuk memasang pakej pengembangan:

composer install --prefer-dist --no-dev -o

Selain itu, sila pastikan anda menggunakan -o dalam persekitaran pengeluaran seperti yang dinyatakan di atas pilihan. Ini membolehkan Komposer mengoptimumkan autoloader dengan menjana "peta kelas".

Jika apl anda tidak menjana kelas pada masa jalanan, anda boleh memilih untuk menggunakan pilihan --classmap-authoritative dan bukannya pilihan -o untuk pengoptimuman selanjutnya. Sila pastikan anda menyemak dokumentasi Komposer untuk AutoloaderStrategi pengoptimuman.

3 Pilih pemacu yang betul

Pilih pemacu yang betul Cache, baris gilir dan pemacu sesi boleh memberi kesan besar pada prestasi aplikasi.

Untuk caching dalam persekitaran pengeluaran, pemacu cache dalam memori seperti Redis, Memcached atau DynamoDB disyorkan. Anda mungkin mempertimbangkan untuk menggunakan caching sistem fail tempatan untuk persediaan pelayan tunggal, walaupun ini akan menjadi lebih perlahan daripada pilihan cache-ke-memori.

Untuk beratur, disyorkan untuk menggunakan pemandu Redis, SQS atau Beanstalkd. Pemacu baris gilir pangkalan data tidak sesuai untuk persekitaran pengeluaran dan diketahui mempunyai masalah kebuntuan.

Untuk Sesi, pangkalan data, pemacu Redis, Memcached atau DynamoDB disyorkan. Pemacu kuki mempunyai saiz fail dan sekatan keselamatan dan tidak disyorkan untuk persekitaran pengeluaran.

4 Memproses tugasan yang memakan masa melalui baris gilir

Semasa permintaan web biasa, mungkin terdapat beberapa tugasan khusus yang memerlukan banyak perkara. mengambil masa yang lama untuk disiapkan. Laravel mempunyai Sistem Gilir kelas pertama, yang membolehkan kami mengalihkan tugas yang memakan masa ke dalam tugas beratur, membolehkan aplikasi anda bertindak balas terhadap permintaan dengan sangat pantas.

Secara amnya, contoh biasa tugas sedemikian termasuk menghuraikan dan menyimpan fail CSV, berinteraksi dengan API pihak ketiga, menghantar pemberitahuan kepada pengguna, pertanyaan pangkalan data yang lama dan memakan masa serta kemas kini indeks carian.

5. Menetapkan pengepala mampatan HTTP untuk fail teks

Pengepala mampatan boleh memberi kesan yang ketara pada prestasi aplikasi. Pastikan anda mendayakan pemampatan atau CDN pada pelayan web anda untuk fail format teks seperti CSS, JS, XML atau JSON.

Format imej sudah mempunyai algoritma pemampatan yang dilaksanakan dan dalam kebanyakan kes, fail format imej telah dimampatkan dan imej bukan fail format teks (kecuali untuk format SVG, yang merupakan dokumen XML). Oleh itu, format imej tidak memerlukan pemampatan.

Anda boleh menyediakan gzip atau brotli pada pelayan web anda atau CDN (pelayar lama mungkin tidak menyokong brotli) untuk mendapatkan peningkatan prestasi yang besar.

Secara amnya, pemampatan boleh mengurangkan saiz fail kira-kira 80%!

6. Tetapkan pengepala cache HTTP pada sumber statik

Caching boleh meningkatkan prestasi aplikasi anda, terutamanya untuk sumber statik, seperti Imej , fail CSS dan JS. Adalah disyorkan untuk mendayakan pengepala kawalan cache pada pelayan web atau peringkat CDN, jika berkenaan. Jika anda ingin menetapkan pengepala kawalan ini pada aplikasi Larvel dan bukannya WebServer, anda boleh menggunakan perisian tengah kawalan cache Larvel.

Medan pengepala Cache memastikan bahawa penyemak imbas tidak berulang kali meminta sumber statik apabila melawat tapak web beberapa kali. Ini meningkatkan pengalaman pengguna apabila tapak web dimuatkan dengan lebih pantas pada lawatan berikutnya.

Laravel Mix menyediakan fungsi pembersihan cache di luar kotak supaya apabila kod CSS atau JS ditukar, penyemak imbas tidak terus menggunakan kandungan cache lama.

7 Mempercepatkan sumber statik menggunakan perkhidmatan CDN

Rangkaian penghantaran kandungan (CDN) ialah kumpulan pelayan yang diedarkan secara geografi yang menggunakan Pelayan lebih dekat dengan pelawat laman web disediakan. Ini membolehkan pengguna mengalami masa pemuatan yang lebih pantas.

Selain kelajuan pemuatan yang lebih pantas dan masa pemuatan yang lebih singkat, CDN juga mempunyai kelebihan lain, seperti mengurangkan beban pelayan web, perlindungan DDOS dan analisis perkhidmatan sumber statik, dsb.

Sesetengah CDN popular termasuk CloudFlare, AWS CloudFront dan Azure CDN. Kebanyakan CDN mempunyai had percubaan percuma tertentu. Sila pertimbangkan untuk menggunakan CDN untuk meningkatkan prestasi pemuatan sumber statik.

Laravel menyediakan komponen sokongan CDN yang luar biasa Campuran dan fungsi pembantu aset dalam rangka kerja.

8. Minimumkan kod JS dan CSS

Meminimumkan skrip akan mengalih keluar overhed yang tidak perlu daripada Kod aplikasi anda (seperti ulasan kod, ruang kosong, dipendekkan nama pembolehubah, dan pengoptimuman lain). Ini ialah cara biasa dan berkesan untuk mengurangkan saiz fail JS dan CSS dalam persekitaran pengeluaran.

Laravel Mix menyediakan out-of-the-box minimumkan output fungsi untuk skrip pengeluaran anda

9. Gunakan cache dengan bijak

Laravel mempunyai sokongan caching terbina dalam. Caching paling sesuai digunakan untuk beban kerja yang berat membaca. Beban kerja ini selalunya melibatkan pengambilan data atau tugas pemprosesan data yang memakan masa.

Sesetengah senario biasa untuk caching mungkin termasuk:

  • Caching halaman statik: Caching halaman statik ialah sebahagian daripada laman web rasmi Laravel menggunakan Halaman caching cache setiap halaman dokumen.
  • Cache serpihan atau separa: Kadangkala mungkin lebih berguna untuk menyimpan serpihan halaman daripada menyimpan cache keseluruhan halaman. Sebagai contoh, anda mungkin mahu cache pengepala halaman yang mengandungi nama pengguna dan avatar pengguna. Anda boleh cache serpihan pengepala halaman sekali tanpa perlu mengambil data daripada pangkalan data setiap kali.
  • Cache Pertanyaan: Cache pertanyaan mungkin berguna jika aplikasi anda kerap menanyakan pangkalan data untuk item yang jarang berubah. Sebagai contoh, apabila anda menjalankan tapak web e-dagang, anda mungkin mahu menyimpan cache kategori item yang dipaparkan pada halaman utama pusat membeli-belah dan bukannya membaca kategori item ini daripada pangkalan data setiap kali anda melawati pusat membeli-belah.

Ingat bahawa caching tidak berguna untuk long tail (item yang jarang diminta). Sebaliknya, ia harus digunakan dengan berhati-hati untuk sebarang pengambilan data (berbanding dengan kemas kini data) yang kerap berlaku.

Anda juga mesti memastikan bahawa cache tidak sah atau disiram setiap kali kandungan cache berubah. Contohnya, jika anda menyimpan pengepala profil, muat semula cache selepas pengguna mengemas kini gambar profil mereka.

10. Kenal pasti kesesakan prestasi dalam aplikasi anda

Jika sesetengah halaman anda mengambil masa yang lebih lama untuk dimuatkan atau mempunyai penggunaan memori yang lebih tinggi, anda mungkin perlu untuk mengenal pasti kesesakan prestasi. Terdapat banyak alatan dalam ekosistem Laravel untuk membantu anda melakukan ini, termasuk Teleskop Laravel, Laravel Debugbar dan Clockwork.

Beberapa kesesakan prestasi biasa termasuk:

  • N 1 pertanyaan : Jika kod anda melaksanakan satu pertanyaan untuk setiap rekod, ia akan menghasilkan lebih banyak perjalanan pergi balik Rangkaian dan banyak lagi pertanyaan. Ini boleh dilakukan dalam Laravel menggunakan Pramuat Data.
  • Permintaan Pendua: Jika kod anda melaksanakan pertanyaan yang sama beberapa kali semasa mengendalikan permintaan yang sama, ia mungkin melambatkan anda turun Kelajuan aplikasi berjalan. Biasanya, jika berbilang perkhidmatan atau kelas memerlukan set data yang sama, isu ini boleh diselesaikan dengan mengekstrak pengiraan atau pengambilan data ke dalam kelas yang berasingan.
  • Penggunaan memori yang tinggi: Untuk mengurangkan penggunaan memori aplikasi anda, pertimbangkan untuk menggunakan Koleksi malas dan Pecahan pertanyaan untuk mengurangkan jumlah tunggal data diproses. Untuk menyimpan fail, gunakan Penstriman automatik untuk mengurangkan penggunaan memori.
  • Pertanyaan perlahan: Jika pertanyaan mengambil masa terlalu lama untuk dilaksanakan, anda harus mempertimbangkan untuk menggunakan cache pertanyaan dan/atau gunakan pernyataan EXPLAIN ​​​​untuk mengoptimumkan pertanyaan rancangan pelaksanaan.

Jika anda tidak dapat mengenal pasti kesesakan prestasi dalam aplikasi anda menggunakan alat nyahpepijat di atas, anda boleh mempertimbangkan untuk menggunakan alat pemprofilan seperti XDebug atau Blackfire.

Senarai Semak Dalam Talian

Selain itu, berikut adalah senarai semak dalam talian yang lengkap untuk rujukan41 Ringkasan Kursus | Bermula dengan Pengoptimuman》.

Ringkasan

Pengoptimuman prestasi ialah topik yang kekal, tetapi Laravel mempunyai beberapa komponen terbina dalam seperti Campuran, baris gilir dan cache, yang menjadikan Pengoptimuman prestasi kelihatan mudah! Kami harap anda mempelajari sesuatu yang baharu tentang meningkatkan prestasi aplikasi.

Alamat asal: https://laravel-news.com/performance-checklist

Alamat terjemahan: https://learnku.com/laravel/t/55702

[Cadangan berkaitan: tutorial video laravel]

Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi dalam Laravel8? Perkongsian Petua Pengoptimuman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:learnku. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Laravel (PHP) vs Python: Menimbang kebaikan dan keburukanLaravel (PHP) vs Python: Menimbang kebaikan dan keburukanApr 17, 2025 am 12:18 AM

Laravel sesuai untuk membina aplikasi web dengan cepat, sementara Python sesuai untuk pelbagai senario aplikasi yang lebih luas. 1. Laravel Menyediakan Eloquentorm, Enjin Template Blade dan Alat Artisan Untuk Memudahkan Pembangunan Web. 2. Python terkenal dengan jenis dinamiknya, perpustakaan standard yang kaya dan ekosistem pihak ketiga, dan sesuai untuk pembangunan web, sains data dan bidang lain.

Laravel vs Python: Membandingkan kerangka dan perpustakaanLaravel vs Python: Membandingkan kerangka dan perpustakaanApr 17, 2025 am 12:16 AM

Laravel dan Python masing-masing mempunyai kelebihan mereka sendiri: Laravel sesuai untuk membina aplikasi web yang kaya dengan ciri-ciri, dan Python berfungsi dengan baik dalam bidang sains data dan pengaturcaraan umum. 1. Laravel menyediakan enjin template eloquentorm dan bilah, sesuai untuk membina aplikasi web moden. 2. Python mempunyai perpustakaan standard yang kaya dan perpustakaan pihak ketiga, dan rangka kerja Django dan Flask memenuhi keperluan pembangunan yang berbeza.

Tujuan Laravel: Membina aplikasi web yang mantap dan eleganTujuan Laravel: Membina aplikasi web yang mantap dan eleganApr 17, 2025 am 12:13 AM

Laravel bernilai memilih kerana ia boleh menjadikan struktur kod jelas dan proses pembangunan lebih artistik. 1) Laravel didasarkan pada PHP, mengikuti seni bina MVC, dan memudahkan pembangunan web. 2) Fungsi terasnya seperti eloquentorm, alat artisan dan templat bilah meningkatkan keanggunan dan kekukuhan pembangunan. 3) Melalui penghalaan, pengawal, model dan pandangan, pemaju dapat membina aplikasi dengan cekap. 4) Fungsi lanjutan seperti giliran dan pemantauan acara meningkatkan prestasi aplikasi.

Laravel: Terutama rangka kerja backend dijelaskanLaravel: Terutama rangka kerja backend dijelaskanApr 17, 2025 am 12:02 AM

Laravel bukan sahaja rangka kerja back-end, tetapi juga penyelesaian pembangunan web yang lengkap. Ia menyediakan fungsi back-end yang kuat, seperti penghalaan, operasi pangkalan data, pengesahan pengguna, dan lain-lain, dan menyokong pembangunan front-end, meningkatkan kecekapan pembangunan keseluruhan aplikasi web.

Laravel (PHP) vs Python: Memahami Perbezaan UtamaLaravel (PHP) vs Python: Memahami Perbezaan UtamaApr 17, 2025 am 12:01 AM

Laravel sesuai untuk pembangunan web, Python sesuai untuk sains data dan prototaip pesat. 1.Laravel didasarkan pada PHP dan menyediakan sintaks elegan dan fungsi yang kaya, seperti eloquentorm. 2. Python terkenal dengan kesederhanaannya, digunakan secara meluas dalam pembangunan web dan sains data, dan mempunyai ekosistem perpustakaan yang kaya.

Laravel dalam Tindakan: Aplikasi dan contoh dunia nyataLaravel dalam Tindakan: Aplikasi dan contoh dunia nyataApr 16, 2025 am 12:02 AM

Laravelcanbeeffectivelyedinreal-worldapplicationsforbuildingscalableWebsolutions.1) itsimplifiescrudoperationsinrestfulapisusingeloquentorm.2) laravel'secosystem, termasuktoolslikenova, enhancesdevelopment.3)

Fungsi Utama Laravel: Pembangunan BackendFungsi Utama Laravel: Pembangunan BackendApr 15, 2025 am 12:14 AM

Fungsi teras Laravel dalam pembangunan back-end termasuk sistem penghalaan, eloquentorm, fungsi penghijrahan, sistem cache dan sistem giliran. 1. Sistem penghalaan memudahkan pemetaan URL dan meningkatkan organisasi dan penyelenggaraan kod. 2.eloquentorm menyediakan operasi data berorientasikan objek untuk meningkatkan kecekapan pembangunan. 3. Fungsi penghijrahan menguruskan struktur pangkalan data melalui kawalan versi untuk memastikan konsistensi. 4. Sistem cache mengurangkan pertanyaan pangkalan data dan meningkatkan kelajuan tindak balas. 5. Sistem giliran berkesan memproses data berskala besar, elakkan menghalang permintaan pengguna, dan meningkatkan prestasi keseluruhan.

Keupayaan backend Laravel: pangkalan data, logik, dan banyak lagiKeupayaan backend Laravel: pangkalan data, logik, dan banyak lagiApr 14, 2025 am 12:04 AM

Laravel melakukan dengan kuat dalam pembangunan back-end, memudahkan operasi pangkalan data melalui eloquentorm, pengawal dan kelas perkhidmatan mengendalikan logik perniagaan, dan menyediakan barisan, acara dan fungsi lain. 1) Jadual pangkalan data Peta Eloquentorm melalui model untuk memudahkan pertanyaan. 2) Logik perniagaan diproses dalam pengawal dan kelas perkhidmatan untuk meningkatkan modulariti dan penyelenggaraan. 3) Fungsi lain seperti sistem giliran membantu menangani keperluan yang kompleks.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa