Laravel性能优化的必备方法

1. 路由缓存

Laravel 路由都会缓存在 routes.php 文件中,下次需要路由时,将访问缓存而不是路由文件。这可以通过快速路由请求来提高站点性能,可以让你的网站更流畅、加载更快的简单方法。

php artisan route:cache  //开启路由缓存
php artisan route:clear  //清除路由缓存

2. 有效的使用 Artisan 命令

缓存路由和配置可以有效地使用它,提高应用程序的性能。

php artisan config:cache
php artisan route:cache

To: Artisan Optimize (在 Laravel 5.5 中被移除,在之前的版本中可以工作)

php artisan optimize --force

php artisan config:clear
php artisan route:cache
php artisan view:clear

3. 直接获取数据

 Laravel 中执行任何查询时,Laravel会延迟执行该查询(懒加载),它仅在需要时获取数据。这种延迟加载行为会增加执行的查询数,同时会降低应用程序的性能,用延迟加载,你最终将执行 N+1 个查询来查找结果。

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

执行 for 循环时,都会执行查询。 为了解决这个问题,Laravel 允许你直接加载数据,这会增加你的查询执行时间并减少查询数量。

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

不使用预先加载,最终将执行 N+1 个查询来查找结果。

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

每次执行 for 循环时,都会执行一次查询,为了解决这个问题,Laravel 允许预先加载关联数据,这会增加的查询执行时间并减少查询次数。

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

4. Composer 优化

使用 Composer 安装包时,使用 --no-dev 和 -o 参数来移除 dev 依赖,优化自动加载器和提高性能的目录。 它只是请求获取和打包官方发行版,没有开发依赖项。

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

5. 压缩绑定配置

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

npm install laravel-mix-purgecss --save-dev
# or
yarn add laravel-mix-purgecss --dev

//在你的文件 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();

6. 使用任务队列

例如:发送邮件,上传文件,下载文件等

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

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

8. 建立数据库索引

使用迁移来创建索引

Schema::create('users', function (Blueprint $table) {

   $table->string('email')->index();

});

9. 利用 JIT 编译器

Laravel 可以使用 Zend Engine 自带的即时编译器来快速编译代码。

10. 压缩图像

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

11. 视图缓存


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

php artisan view:cache

php artisan view:clear

12.删除未使用的服务

使用 Laravel 提供的服务容器框架轻松地注入服务,只需在 config/app.php 文件中的 providers[] 数组中添加服务的名称,只打开你正在使用的那些服务。应停止所有其他未使用的服务。可以通过在 config/app.php 文件中注释掉这些服务来停止这些服务。这将减少你的应用程序启动所需的时间并提高其性能

13. 使用 CDN 加载静态内容

CDN 可以帮你缓存多个静态页面。

14. 压缩 CSS 和 JS

可以使用 Laravel-packer,它允许你打包和压缩你的 CSS 和 JavaScript 代码。 如果需要,你还可以调整图像大小以生成缩略图。

15. 移除开发依赖

使用composer移除不需要的依赖

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

猜你喜欢

转载自blog.csdn.net/weixin_43695488/article/details/126306000