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.
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.
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:
.env
dan config
fail pada setiap parse pelancaran apl. 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.
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.
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.
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.
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%!
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.
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.
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
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:
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.
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:
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.
Selain itu, berikut adalah senarai semak dalam talian yang lengkap untuk rujukan41 Ringkasan Kursus | Bermula dengan Pengoptimuman》.
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!