Jadual Kandungan
Mengapa pengoptimuman prestasi Laravel sangat penting?
1. Cache laluan
2. Gunakan arahan Artisan dengan berkesan
3. Konfigurasikan cache
5. Pengoptimuman Komposer
7. 队列
10. 利用 JIT 编译器
11. 压缩图像
12. 视图缓存
13. 删除未使用的服务
14. 使用 CDN 加载静态内容
16. 移除开发依赖
17. 将Lumen用于小型项目
18. 限制包含的库
Rumah rangka kerja php Laravel Bagaimana untuk mengoptimumkan prestasi Laravel? 18 perkongsian pengetahuan penting untuk pengoptimuman

Bagaimana untuk mengoptimumkan prestasi Laravel? 18 perkongsian pengetahuan penting untuk pengoptimuman

Dec 02, 2022 pm 09:24 PM
php laravel

Bagaimana untuk mengoptimumkan prestasi Laravel? 18 perkongsian pengetahuan penting untuk pengoptimuman

Laravel ialah rangka kerja PHP sumber terbuka popular yang terkenal dengan keselamatan yang kukuh dan seni bina pengekodan yang ringkas namun kompleks. Ia merupakan pilihan yang bagus untuk membina aplikasi web canggih yang memacu hasil dan mengembangkan perniagaan anda.

Hari ini, tiada pembangun PHP yang tidak dipengaruhi oleh Laravel. Mereka sama ada pembangun peringkat rendah atau pertengahan yang menyukai pembangunan pesat yang Laravel tawarkan, atau mereka pembangun kanan yang terpaksa mempelajari Laravel kerana tekanan pasaran.

Dengan lebih 1 juta tapak web yang dikuasakan oleh Laravel, Google telah mendorong kepentingan kelajuan tapak web dan pengguna semakin tidak mahu menerima apa-apa selain daripada pengalaman pengguna yang sangat lancar, sesetengah Orang memberikan rangka kerja seperti PHP dan Laravel reputasi kerana tidak berprestasi sebaik rangka kerja lain. Walaupun ini mungkin benar, ini tidak bermakna tiada apa yang boleh anda lakukan mengenainya. Jadi, dalam panduan ini, kami akan mendalami cara mengoptimumkan prestasi Laravel.

Pada masa ini, Laravel telah menjadi rangka kerja yang sangat popular untuk membangunkan aplikasi perniagaan dan e-dagang. Kebanyakan organisasi lebih suka menggunakan Laravel untuk membina aplikasi perniagaan mereka. Terdapat banyak sebab. Tetapi hari ini kami hanya menumpukan pada pengoptimuman prestasi.

Mengapa pengoptimuman prestasi Laravel sangat penting?

Artikel ini akan memperkenalkan beberapa petua penting dan membimbing setiap langkah untuk mengoptimumkan tapak web Laravel anda. Walaupun beberapa langkah mungkin terdengar teknikal, ia mudah diikuti dan dibuat semula pada skrin anda sendiri.

1. Cache laluan

Laravel membenarkan caching laluan. Anda boleh melaksanakan perintah Artisan:

php artisan route:cache
Salin selepas log masuk

Semua laluan akan dicache dalam fail routes.php.

Pada kali seterusnya laluan diperlukan, cache akan diakses dan bukannya fail laluan. Ini boleh meningkatkan prestasi tapak dengan menghalakan permintaan dengan cepat.

Untuk mengosongkan cache, gunakan arahan seperti:

php artisan route:clear
Salin selepas log masuk

Caching laluan ialah cara mudah untuk menjadikan tapak web anda lebih lancar dan dimuatkan dengan lebih cepat.

2. Gunakan arahan Artisan dengan berkesan

Salah satu ciri terbaik Laravel ialah alat baris arahan Artisan. Jika digunakan dengan berkesan, ia boleh meningkatkan prestasi aplikasi anda.

Anda boleh cache laluan dan konfigurasi. Anda boleh cache konfigurasi dan laluan dengan melaksanakan perintah berikut:

php artisan config:cache

php artisan route:cache
Salin selepas log masuk

Nota: Artisan Optimize telah dialih keluar dalam Laravel 5.5, ia berfungsi dalam versi sebelumnya.

php artisan optimize --force
Salin selepas log masuk

Pastikan anda mengosongkan cache apabila menambah konfigurasi baharu atau laluan baharu. Cache boleh dikosongkan dengan berkesan menggunakan arahan di bawah.

php artisan config:clear
php artisan route:cache
php artisan view:clear
Salin selepas log masuk

3. Konfigurasikan cache

Laravel menyediakan arahan yang sangat menarik: Artisan Cache Config, yang sangat membantu untuk meningkatkan prestasi. Penggunaan asas arahan itu ialah:

php artisan config:cache
Salin selepas log masuk

Selepas konfigurasi dicache, ia tidak akan memberi kesan kepada perubahan yang anda buat. Jika anda ingin menyegarkan semula konfigurasi, jalankan sahaja arahan di atas sekali lagi. Jika anda perlu mengosongkan cache konfigurasi, gunakan arahan berikut:

php artisan config:clear
Salin selepas log masuk

4. Dapatkan data terus

Laravel akan menangguhkan apabila anda melaksanakan sebarang pertanyaan dalam Laravel Pertanyaan ini dilaksanakan (pemuatan malas) dan ia hanya mengambil data apabila diperlukan.

Dalam sesetengah kes, tingkah laku pemuatan malas ini boleh meningkatkan bilangan pertanyaan yang dilaksanakan sambil merendahkan prestasi aplikasi.

Mari kita lihat contoh mudah untuk memahami tingkah laku ini secara terperinci. Jika anda ingin mendapatkan nama pengarang buku di perpustakaan.

Dengan memuatkan malas, anda akhirnya akan melaksanakan pertanyaan N 1 untuk mencari keputusan. Anda boleh melihatnya dalam contoh kod di bawah.

$books = Book::all();foreach ($books as $book) {
  echo $book->author->name;}
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di bawah, setiap kali gelung for dilaksanakan, pertanyaan akan dilaksanakan. Untuk menyelesaikan masalah ini, Laravel membenarkan anda memuatkan data secara langsung.

Ini akan meningkatkan masa pelaksanaan pertanyaan anda dan mengurangkan bilangan pertanyaan. Contoh kod di bawah menunjukkan cara kami boleh memuatkan senarai lengkap dengan mudah dalam satu pertanyaan.

$books = Book::with('author')->get();foreach ($books as $book) {
  echo $book->author->name;}
Salin selepas log masuk
Salin selepas log masuk

Mari kita lihat contoh mudah untuk memahami tingkah laku ini secara terperinci.
Jika anda ingin mendapatkan nama pengarang buku di perpustakaan.

Jika anda tidak menggunakan pemuatan yang bersemangat, anda akhirnya akan melaksanakan pertanyaan N 1 untuk mencari keputusan.
Anda boleh melihatnya dalam contoh kod di bawah.

$books = Book::all();foreach ($books as $book) {
  echo $book->author->name;}
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di bawah, setiap kali gelung for dilaksanakan, pertanyaan akan dilaksanakan.
Untuk menyelesaikan masalah ini, Laravel membenarkan pramuat data berkaitan.

Ini akan meningkatkan masa pelaksanaan pertanyaan dan mengurangkan bilangan pertanyaan.
Contoh kod di bawah menunjukkan cara kami boleh memuatkan senarai lengkap dengan mudah dalam satu pertanyaan.

$books = Book::with('author')->get();foreach ($books as $book) {
  echo $book->author->name;}
Salin selepas log masuk
Salin selepas log masuk

5. Pengoptimuman Komposer

Laravel menggunakan alat pengurusan pakej yang dipanggil Composer untuk mengurus kebergantungan yang berbeza. Apabila anda mula-mula memasang Komposer, ia memuatkan kebergantungan pembangunan ke sistem anda secara lalai.

Kebergantungan ini berguna untuk membangunkan tapak web. Walau bagaimanapun, apabila tapak web anda beroperasi sepenuhnya, ia tidak lagi diperlukan, malah ia hanya akan memperlahankannya.

Apabila menggunakan Composer untuk memasang pakej, gunakan parameter --no-dev dan -o untuk mengalih keluar pergantungan dev:

composer install --prefer-dist --no-dev -o
Salin selepas log masuk
Salin selepas log masuk

此命令允许 Composer 创建用于优化自动加载器和提高性能的目录。 它只是请求获取和打包官方发行版,没有开发依赖项。

注意不要消除任何运行时依赖项。 这可能会危及网站的性能,甚至导致其崩溃。

6. 压缩绑定配置

Laravel mix 可以在这里为你提供帮助,它编译所有 CSS 并提供单个 app.css 文件,从而将多个 HTTP 请求减少为单个。 你还可以使用 laravel-mix-purgecss 包从项目中删除未使用的 CSS,只需将其安装在你的开发项目中:

npm install laravel-mix-purgecss --save-dev

# or

yarn add laravel-mix-purgecss --dev
Salin selepas log masuk

在你的文件 webpack.mix.js

const mix = require('laravel-mix');require('laravel-mix-purgecss');mix.js('resources/js/app.js', 'public/js').sass('resources/sass/app.scss', 'public/css').purgeCss();
Salin selepas log masuk

7. 队列

Laravel 队列就像你的 CPU 一样工作。 每当你的计算机处理一项任务时,它都会以最有效的方式执行,而不会降低用户体验的质量。 这意味着当你渲染文件或执行资源密集型操作时,你的 CPU 会确保你仍有剩余的处理能力用于其他任务,直到达到其限制。

例如,当用户注册到网站时,我们必须在后端执行许多操作,例如存储用户信息、发送激活邮件、发送欢迎邮件等。如果我们只是发送一封邮件(没有队列),那么它会大约需要 4-5 秒。并且用户必须等到请求。因此,对于队列,我们只需要在执行所需的验证并显示用户成功消息后将操作推送到队列中。之后,我们只需要在队列执行时处理基本的事务。

简单的例子是:

  • 发送电子邮件
  • 下载文件
  • 上传文件

这些任务不需要用户看到,可以作为后台进程完成。

Laravel 还有几个队列驱动程序支持文档,并为每个文档提供独特的解决方案,例如 Horizon,一个监控队列系统的仪表板。

8. 快速缓存或会话驱动程序

为了提高 Laravel 应用程序的性能,我们可以存储会话并将它们缓存在 RAM 中。 Memcached 是最好和最快的缓存和会话驱动程序。 Laravel 可以灵活地将一个缓存/会话驱动器切换到另一个。

对于会话驱动,我们可以在 config/session.php 中更改驱动键,对于缓存,我们可以在 config/cache.php 文件中更改驱动键。

9. 数据库索引

当我们谈论提高应用程序的性能时,我们会遵循 Laravel 中的许多实践,例如缓存、数据加载、资产缩小等。但是还有一件事可以帮助我们提高性能,即数据库索引。 这基本上是一种数据库级技术。

在技术实现的角度看,数据库索引是基于数据库表的一个或多个列的数据结构。索引背后的主要思想是加快数据检索。它有助于轻松定位数据,而无需在每次访问数据库时遍历每一行。

使用列,索引有助于最小化处理的每个查询的磁盘访问。使数据库索引成为一种强大的数据库优化技术还可以提高数据库的整体性能。

在 Laravel 中,我们可以使用迁移来创建索引。下面是示例:

Schema::create(‘users’, function (Blueprint $table) {
   $table->string(’email’)->index();});
Salin selepas log masuk

10. 利用 JIT 编译器

PHP 是一种计算机机器和服务器端语言。它本身不理解 PHP 代码。通常,程序员使用编译器将代码编译成字节码并解释 PHP 代码。程序编译过程会影响 Laravel 应用程序的性能和用户体验。所以,Laravel 程序员可以使用 Zend Engine 自带的即时编译器来快速编译代码。

11. 压缩图像

如果你的项目中包含许多图像,你应该压缩所有图像以优化性能。
有一些方法可以进行优化。
但是不同的图像需要不同的工具来保持图像的质量和分辨率。

如果你使用 Laravel Mix,建议在编译图像时使用像 ImageMin 这样的 NPM 包。
对于非常大的图片,先试试 TinyPNG 压缩图片,然后再用 ImageMin 尽量压缩。

12. 视图缓存

另一个方面是视图缓存。
视图缓存存储编译后的的 Blade 模板以提高项目的速度。
你可以使用下面的 artisan 命令手动编译所有视图并优化性能:

php artisan view:cache
Salin selepas log masuk

上传新代码时记得清除缓存;否则,Laravel 将使用你的旧视图,你将花费大量时间尝试解决此问题。运行以下命令清除视图缓存:

php artisan view:clear
Salin selepas log masuk

13. 删除未使用的服务

你可以使用 Laravel 提供的服务容器框架轻松地注入服务。你只需在 config/app.php 文件中的 providers[] 数组中添加服务的名称。

但同时,你应该只打开你正在使用的那些服务。应停止所有其他未使用的服务。

你可以通过在 config/app.php 文件中注释掉这些服务来停止这些服务。这将减少你的应用程序启动所需的时间并提高其性能

14. 使用 CDN 加载静态内容

CDN 是在全球范围内加载静态内容的好方法。如果你的应用程序越来越流行,你可能需要为你的应用程序使用 CDN 服务

让我举一个简单的例子,你在美国的服务器上托管了你的应用程序。现在,如果你有来自印度的请求,你需要很长时间才能为该请求提供内容。

为了解决这个问题,CDN 应运而生。 CDN 可以帮你缓存多个静态页面。现在你的请求将首先到达 CDN,如果内容存在于 CDN 中,则直接提供页面。这极大地提高了你的内容服务速度以及最终用户体验。

15. 压缩 CSS 和 JS

在生产环境中实际捆绑这些文件之前,你应该始终压缩 CSS 和 JavaScript 文件。 这将增强你的用户体验并减少 HTTP 调用。 这是一个很棒的 Laravel 性能优化技巧。

有多种工具可用于压缩这些文件并将它们捆绑为单个文件。 你可以使用 Laravel-packer,它允许你打包和压缩你的 CSS 和 JavaScript 代码。 如果需要,你还可以调整图像大小以生成缩略图。

16. 移除开发依赖

首次安装 Laravel 或 composer 时,通常会默认将开发依赖项注入到你的系统中。 虽然这些依赖项确实有助于构建你的网站,但当你的网站启动并运行时,你不需要这些依赖项。

你可以通过 Artisan 输入这个简单的命令来删除这些依赖项:

composer install --prefer-dist --no-dev -o
Salin selepas log masuk
Salin selepas log masuk

注意: 开发依赖项不同于运行时所需的依赖项。 不要删除运行时依赖项,因为这可能会影响你网站的性能,甚至会导致你网站的某些部分崩溃。

17. 将Lumen用于小型项目

有时开发小型应用程序(例如移动或 Angular 应用程序)不需要使用像 Laravel 这样的全栈框架。 在这种情况下,请考虑改用 Lumen。

Lumen 是由 Laravel 的同一创建者开发的微框架。 就像 Laravel 的轻量级版本一样,Lumen 是关于微服务的速度和性能的。 在构建 Web 应用程序时,它需要最少的设置和替代路由参数,从而加快开发过程。

例如,Lumen 每秒可以处理 100 个请求。 你还可以集成来自第三方的工具或软件包以获得新功能。 此外,Lumen 支持所有平台并允许你升级到 Laravel。

18. 限制包含的库

Laravel 让你可以自由添加任意数量的库。 虽然这是一个很棒的功能,但添加大量库会给应用程序的性能带来很大压力。 它还会影响整个用户体验。

因此,扫描代码中当前使用的所有库数据至关重要。 你可以在 config/app.php 文件中找到这些库。 在检查库时,删除你知道对你不再有用的库。

查看 composer.json 中不需要的依赖项也是一个好办法。

感谢你们的阅读!

原文地址:https://devdojo.com/techvblogs/how-to-op...

译文地址:https://learnku.com/laravel/t/69775

【相关推荐:laravel视频教程

Atas ialah kandungan terperinci Bagaimana untuk mengoptimumkan prestasi Laravel? 18 perkongsian pengetahuan penting untuk pengoptimuman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Status Semasa PHP: Lihat trend pembangunan web Status Semasa PHP: Lihat trend pembangunan web Apr 13, 2025 am 12:20 AM

PHP tetap penting dalam pembangunan web moden, terutamanya dalam pengurusan kandungan dan platform e-dagang. 1) PHP mempunyai ekosistem yang kaya dan sokongan rangka kerja yang kuat, seperti Laravel dan Symfony. 2) Pengoptimuman prestasi boleh dicapai melalui OPCACHE dan NGINX. 3) Php8.0 memperkenalkan pengkompil JIT untuk meningkatkan prestasi. 4) Aplikasi awan asli dikerahkan melalui Docker dan Kubernet untuk meningkatkan fleksibiliti dan skalabiliti.

PHP: Bahasa utama untuk pembangunan web PHP: Bahasa utama untuk pembangunan web Apr 13, 2025 am 12:08 AM

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

PHP vs Bahasa Lain: Perbandingan PHP vs Bahasa Lain: Perbandingan Apr 13, 2025 am 12:19 AM

PHP sesuai untuk pembangunan web, terutamanya dalam pembangunan pesat dan memproses kandungan dinamik, tetapi tidak baik pada sains data dan aplikasi peringkat perusahaan. Berbanding dengan Python, PHP mempunyai lebih banyak kelebihan dalam pembangunan web, tetapi tidak sebaik python dalam bidang sains data; Berbanding dengan Java, PHP melakukan lebih buruk dalam aplikasi peringkat perusahaan, tetapi lebih fleksibel dalam pembangunan web; Berbanding dengan JavaScript, PHP lebih ringkas dalam pembangunan back-end, tetapi tidak sebaik JavaScript dalam pembangunan front-end.

Relevannya PHP: Adakah ia masih hidup? Relevannya PHP: Adakah ia masih hidup? Apr 14, 2025 am 12:12 AM

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

PHP: asas banyak laman web PHP: asas banyak laman web Apr 13, 2025 am 12:07 AM

Sebab mengapa PHP adalah timbunan teknologi pilihan untuk banyak laman web termasuk kemudahan penggunaannya, sokongan komuniti yang kuat, dan penggunaan yang meluas. 1) Mudah dipelajari dan digunakan, sesuai untuk pemula. 2) Mempunyai komuniti pemaju yang besar dan sumber yang kaya. 3) Digunakan secara meluas dalam platform WordPress, Drupal dan lain -lain. 4) Mengintegrasikan dengan ketat dengan pelayan web untuk memudahkan penggunaan pembangunan.

PHP vs Python: Ciri dan Fungsi Teras PHP vs Python: Ciri dan Fungsi Teras Apr 13, 2025 am 12:16 AM

PHP dan Python masing -masing mempunyai kelebihan sendiri dan sesuai untuk senario yang berbeza. 1.PHP sesuai untuk pembangunan web dan menyediakan pelayan web terbina dalam dan perpustakaan fungsi yang kaya. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan standard yang kuat. Apabila memilih, ia harus diputuskan berdasarkan keperluan projek.

Tujuan PHP: Membina Laman Web Dinamik Tujuan PHP: Membina Laman Web Dinamik Apr 15, 2025 am 12:18 AM

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

See all articles