Laravel项目的性能优化

众所周知Laravel框架的功能很强大,它里面的东西也很多,即便如此它仍然是一个优秀的框架,但在生产环境下要做好优化提升网站的打开速度。所以,接下来的这篇文章给大家分享了几个Laravel网站性能优化的技巧。

优化一:关闭debug

打开.env文件,把debug设置为false。

APP_ENV=local

APP_DEBUG=false

APP_KEY=base64:sT/aTFeaE13eyao1Raee6jC9Ff+Yle1SE+wtyk0H6B4=

优化二:缓存路由和配置

每次服务器执行请求时,都会注册所有的路由,这会花费一些时间。但是,你可以选择缓存路由列表来跳过这个步骤。
缓存路由列表是非常简单的。你需要做的是在部署应用程序后,执行下面的这个命令:

php artisan route:cache

但是,如果你添加或修改了任意一个路由信息,请不要忘记清除之前的缓存以及重新执行缓存命令。

php artisan route:clear
php artisan route:cache

注意,这只对控制器类路由有效。
缓存配置
就如路由一样,你同样可以在应用中缓存配置文件。
设想一下这种场景:每次你发送一个请求到 App 中,Laravel 都需要去加载不同的配置文件,并且要去打开*.env* 文件读取其中的内容。这种方式性能低下,是不?
不过不用担心,这里有个 Artisan 命令专治这个。

php artisan config:cache

你在部署之后可以使用它。和路由差不多,别忘了编辑东西的时候清理一下缓存。

php artisan config:clear
php artisan config:cache

优化三:composer优化

sudo composer dump-autoload optimize

优化四:laravel 提升性能命令

php artisan optimize

优化五:使用性能更好的Cache和Session驱动

Laravel默认是有缓存的,当你新建一个 Laravel 项目的时候Cache 和 Sessions 的驱动默认为 「文件」。在本地开发环境和小项目中它没啥问题,但是项目增长时,就显得不够用了。
所以,考虑下换个更好的驱动例如 Redis。 Laravel 有内置支持它的方式,而你要做的就是 安装 Predis。

优化五:使用队列

有些时候,Laravel 比预期慢,这时你可以考虑异步执行任务。
最常见的情况就是发送一封欢迎邮件,让我们一起看看任务流程。

用户填写我们的表单;
将他/她的详细信息写入数据库;
发送一封写有欢迎语和确认链接的邮件给他/她;
并展示感谢页面;

很多时候,这些任务完全是在控制器中并且按照顺序执行。
我的建议是学会如何使用事件和队列,可以将发送邮件任务交给专门的流程,以致于改善用户使用体验。
我上篇文章专门讲了laravel队列的使用,有兴趣的可以去看一下Laravel队列的使用

优化六:删除未使用的服务

Laravel 自带了很多服务,它是一个全栈框架,每一个服务都有其用武之地。
所以,请花一些时间检查 *config/app.php * 文件,看看你是否能找到一个你不需要的服务。如果一切正常,请尝试将其删除并测试您的应用程序。
它应该有所帮助(一点点)!

优化七: 使用预加载进行查询

如果你知道 Laravel 是什么,你可能也知道预加载是什么。 如果您信息不够及时,预加载是一种通过使用特定语法来减少发送到数据库的查询数量来提高 Eloquent 性能的方法。
更改基础查询以避免此性能问题。 您将只执行两个查询而不是1001! 这是巨大的性能提升。

优化八:缓存查询结果

有时候, 缓存一个具体的查询结果可能是一个好主意。
想象这样一个场景:你准备在你的应用主页上展示 排行榜。 这项工作是通过从数据库中执行查询完成的(查询可能涉及到artists表以及其他的一些表)。 你的主页访问量是 1000 次/小时 。
如果这个排行榜数据的查询次数是 1000次每小时,那么一天下来执行的查询次数就是24000次。
现在,让我们假设这个排行榜是每小时更新一次 。那么,将每次的查询结果缓存一小时如何 ?
这个缓存组件的 * remember* 方法在未找到缓存的情况下将会先从数据库中获取数据,并缓存60分钟。到期后,将会再次从数据库中获取最新的数据,更新缓存。
查询次数 从 24000 到 24 次/天 。

优化九: 数据表要建立索引

记住,必要的时候请为您的数据表建立索引。 这看起来像是个没什么卵用的提示,但实际上这很有必要。 因为我见过非常多的应用,它们的数据表没有索引。
实现起来很简单,您可以创建一个新的数据库迁移并使用里面的方法来添加索引.
当然,索引不是您喜欢在哪建就直接创建一个就是了。您必须研究您的业务、代码和查询,去分析哪里才是最需要索引的地方,然后再建立索引。

优化十:去除没必要的中间件

Laravel 会对你注册的中间件进行大量的(前/后)调用。所以,请你仔细检查它们,并且去掉那些你不需要的中间件。
通常中间件列表在 *Kernel.php *。

优化十一:使用更高版本的php并开启OpCacahe

这不仅仅是针对Laravel网站的性能优化方法,其中很多也是通用的网站性能优化的方法;

优化十二:使用CDN

肯定会有很多前端的资源,比如 CSS 文件和 JS 脚本。
你可以通过多种方式来减少发送给用户的数据量:

  1. 压缩静态资源;
  2. 捆绑静态资源(将多个 CSS 文件或者 JS 脚本合并为一个,以减少请求次数);
  3. 开启 gzip 压缩;

然而,如果你遇到大量的流量,我建议你可以将你的静态资源托管到专用的 CDN 服务器上,比如七牛等

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Laravel框架性能表现良好。它采用了许多优化策略,如缓存、延迟加载和路由缓存等,以提高应用程序的性能。此外,Laravel还提供了一些工具和插件,如Eloquent ORM和Blade模板引擎,以简化开发过程并提高应用程序的性能。总的来说,Laravel框架是一个高效、可扩展和易于使用的框架,适用于各种规模的应用程序。 ### 回答2: Laravel是一个PHP开发框架,它以优雅、简单和快速的方式提供了一套丰富的工具和功能。它具有高度的可扩展性和灵活性,使得开发者可以快速构建高性能的Web应用程序。 首先,Laravel采用了模块化的设计结构,通过使用Composer可以轻松地添加和管理第三方软件包。这意味着开发者可以选择性地加载所需的模块,提高了系统的性能并降低了系统的内存占用。 其次,Laravel使用了类似于MVC(Model-View-Controller)的架构模式,将应用程序的不同组件分离开来。这种分离使得开发者可以更好地组织和管理代码,并且具有更高的可重用性和可测试性。同时,这种架构模式也可以提高系统的性能,因为每个组件都可以独立地进行优化。 另外,Laravel还实现了许多性能优化技术,例如缓存和页面压缩。通过使用缓存,Laravel能够将经常使用的数据存储在内存中,以减少数据库查询的次数,从而提高系统的响应速度。而页面压缩则是通过减少网络传输的数据量来提高系统的性能。 此外,Laravel还提供了良好的错误处理和日志记录机制,可以帮助开发者快速定位和解决性能问题。这些功能使得开发人员可以更好地监控和管理系统的性能,并且能够及时采取措施来提高系统的性能。 总之,Laravel框架具有良好的性能,并且提供了许多优化技术和工具,使得开发者可以轻松构建高性能的Web应用程序。 ### 回答3: Laravel框架是一款流行的PHP开发框架,被广泛用于构建Web应用程序。在性能方面,Laravel框架具有以下特点。 首先,Laravel框架通过其强大而灵活的功能以及自动化的代码生成工具,使得开发者能够快速构建功能丰富的应用程序。这种高效的开发模式可以减少项目开发周期,从而提高了开发效率。 其次,Laravel框架具有良好的代码结构和优化的性能。框架提供了一套丰富的功能和工具,包括路由、数据库查询构建器、缓存、队列等,可帮助开发者优化应用程序的性能。此外,Laravel框架还提供了命令行工具,用于进行性能测试和优化。 再次,Laravel框架采用了Composer依赖管理工具,可以确保应用程序只加载所需的库和组件,减少了不必要的资源消耗,提高了性能。 此外,Laravel框架还支持多种缓存和会话驱动方式,开发者可以根据实际需求选择合适的缓存驱动,从而进一步提高应用程序的性能。 总的来说,Laravel框架在性能方面表现出色。它通过提供丰富的功能和工具,优化的代码结构以及灵活的开发模式,使得开发者能够高效地构建高性能的Web应用程序。同时,Laravel框架还提供了一系列的性能测试和优化工具,方便开发者进行性能调优。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值