Laravel框架高并发性能优化

调整框架本身的配置

 

 

  • 编辑.env
    APP_ENV = production
    APP_DEBUG = false
  • php artisan route:cache / php artisan config:cache
  • composer dump-autoload --optimize
  • php artisan optimize

其他可能

 

 

  • 开启OPcache
  • php-fpm 配置调优

参考文章

But.....压测很容易看出,这些很难看到提高十倍以上性能的效果

 

 

  • 如果你正在考虑框架性能优化的问题, 你对PHP应该已经有足够的了解了。 如你所知, PHP每次的每次请求结束, 都会释放掉执行中建立的所有资源。这样有一个很大的好处:PHP程序员基本不用费力去考虑资源释放的问题,诸如内存,IO句柄,数据库连接等,请求结束时PHP将全部释放。PHP程序员几乎不用关心内存释放的问题,也很难写出内存泄露的程序。这让PHP变得更加简单容易上手, 直抒心意。但是也带来了一个坏处:PHP很难在请求间复用资源, 类似PHP框架这种耗时的工作, 每次请求都需要反复做——即使每次都在做同样的事情。也正因为如此,在PHP发展过程中,关于是否使用框架的争论也从未停止过。

  • Laravel本身启动需要的文件就很多,外加其出了名的生态环境好,开发中我们会 很多很多现有的轮子,使得一次启动的磁盘IO特别高(就是要加载很多文件嘛),虽然官方的php artisan optimize方法优化了文件的加载,但并没有实际解决IO上的问题。
    知道了问题那就很容易解决了,只要不要每次启动都重新加载就好了,下面轮到Swoole上场啦。

  • swoole框架相比apache/fpm,主要是节省PHP框架和全局对象每次请求创建销毁带来的性能损耗。如果你的PHP代码是裸echo的方式,swoole框架并没有性能优势。

  • 同样,事情总是有好有坏。坏处是:PHP编程变得更难了, 你需要考虑内存的释放,需要关心PHP如何使用内存。甚至, 你需要了解使用的框架,以免『不小心』写出让人『惊喜』的效果。同时, PHP的调试变得更难, 因为每次修改程序后需要重启进程才能看到效果。好处是:程序的性能得到极大的提高。 当然, 客观上的一些利好因素是: PHP的内存回收已经相当稳定和高效, Swoole稳定性已经在相当多的项目中得到验证,Laravel代码质量相当高

画个饼

 

 

方案性能对比 使用的轮子:stone

应用类型原始LaravelStone-WebStone-Server原生php直接echo
laravel5 默认页面1503000----
laravel5 简单接口150300085009500
laravel4 实际项目简单页面701000----
laravel4 简单接口120--82009500
laravel4 实际项目首页35380----
  • 以上单位全部为RPS
  • Stone相对于原始的Laravel有相当可观的提升
  • 即使和一个简单的echo相比, Stone性能损失仅10%左右

swoole+laravel 说干就干!

 

 

PS:如果亲还是用的php5 我就不带你玩了哈

选个新点火点的轮子:laravel-s

找个本地已有项目ab试水,附上现有结果

Requests per second: 31.91 [#/sec]

先看laravel-s文档一阵配置....

Requests per second: 592.17 [#/sec] (mean)

都是压测的ab -n 200 -c 20 三次取的平均值 性能提升了20倍!!!

不必多说 花10分钟你也来试试 就知道其中的爽了

bingo,终于可以在golang的同事面前继续说php是世界上最美的语言了.......

最后再吹水一波swoole

 

 

使用apache bench工具对Nginx静态页、Golang Http程序、PHP7+Swoole Http程序进行压力测试。在同一台机器上,进行并发100共100万次Http请求的基准测试中,QPS对比如下:

软件QPS软件版本
Nginx164489.92nginx/1.4.6 (Ubuntu)
Golang166838.68go version go1.5.2 linux/amd64
PHP7+Swoole287104.12swoole-1.7.22-alpha
Nginx-1.9.9245058.70nginx/1.9.9

From swoole 官网 去看看

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答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框架还提供了一系列的性能测试和优化工具,方便开发者进行性能调优。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值