laravel很慢_Laravel 到底能慢到什么程度?

两年了,看到还有人收藏,回来补充一下,结论就是,laravel 确实很慢,高流量业务千万别用,我们的业务已经基本都迁移了,期间遇到的坑在这里写一下:

路由,众所周知,Laravel 的路由组件是出了名的慢,主要是用反射之类的东西(具体原理记不清了,总之就是很慢)。

Eloquent,虽然提供了很方便的数据库操作接口,但是每次 new model 的时候,如果有 fillable 的属性,他会把所以的字段都给你填充一边,这样在循环中,或者大流量下,瞬间对系统资源的占用是很大的。

Guzzle http client,实际测试过使用这个 client 发起多次 http 请求,几乎所有的对象都不会复用(猜测),所以导致期间进行的内存分配和 new 对象的次数,比随手用 curl 写一个 client 要多上万倍。

总结来讲就是 Laravel 在对象的创建和内存的复用方面,是很奢侈的,而且一个请求下来,会经历无数的没什么用的操作,对于资源是一点也不节省。

以上,基于之前提问是 5.6.5 版本,这两年来我们团队填坑发现到的一些问题,最新版本的再没有研究过,总之就是用 PHP 写东西还是按需获取资源,能少调用一次函数就少调用一次,能少 new 一个对象就少 new 一个,浪费可耻,也慢。

最后,这些都属于回忆的时候写的,有些细节可能不尽准确,大概方向就是这些。

具体查问题的办法就是使用性能采集扩展,目前支持 php 7 的有 php-xhprof-extension , 也可以参考这个扩展自研,满足自己的采集需求,查看自己的代码在执行过程中对内存的申请、CPU 的占用等信息,便可知道慢在哪里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值