Php 拉威尔性能

Php 拉威尔性能,php,laravel,laravel-5,laravel-5.1,Php,Laravel,Laravel 5,Laravel 5.1,我打算将一个定制的webstore应用程序移植到Laravel,这样它就新了,很有光泽,很乐意支持。在花了几个小时设置框架并开始移植主布局之后,我决定测试它的性能。我已经安装了一个原始应用程序的副本和移植到laravel的部分,在那里我建立了一个分区模型,并从dimsav/laravel translatable转换,并输出主导航,其中节::all()约30节 当我看到Firebug中Netwrok选项卡的简单观察结果时,我感到震惊: 对于我的laravel设置,仅渲染上述内容大约需要360ms

我打算将一个定制的webstore应用程序移植到Laravel,这样它就新了,很有光泽,很乐意支持。在花了几个小时设置框架并开始移植主布局之后,我决定测试它的性能。我已经安装了一个原始应用程序的副本和移植到laravel的部分,在那里我建立了一个分区模型,并从dimsav/laravel translatable转换,并输出主导航,其中节::all()约30节

当我看到Firebug中Netwrok选项卡的简单观察结果时,我感到震惊:

对于我的laravel设置,仅渲染上述内容大约需要360ms。我想当整个页面被移植时,响应时间会有多长

对于原始应用程序,需要~30ms才能为整个主页提供相同的导航、流行产品、子菜单、页脚导航、检查购物车内容等

在同一个虚拟服务器上,甚至使用同一个数据库,都没有缓存

我分析了代码以发现任何问题,但我发现的只是

  • 6.4%用于自动加载(32ms-比另一个版本的整个requesto多)
  • 12.5%/63ms-服务注册
  • 11.1%/56ms-配置加载ig
  • 44.5%来自无休止的管道电话。几乎所有的时间都花在了没完没了的管道电话上
为了证实这一点,一个空的laravel应用程序将在大约17毫秒内响应


我是不是遗漏了什么?我原以为在移动到框架时会有一些性能下降,但是(假设整个设置的响应时间会增加,所以我预计是~20x)20x看起来很疯狂。这些时间对laravel来说正常吗?使用缓存(例如Redis)或任何其他优化技术是否有任何大的好处?我想知道,除了缓存之外,是否还有其他功能?

在Digital Ocean的一个价值5美元的VPS实例上,通过部署的应用程序,我看到了响应时间:

512MB存储器 1核处理器 20GBSSD磁盘

流明60-120毫秒 拉维100-300毫秒

这些特定的应用程序不会缓存。对于已经编译的视图,100-150毫秒的响应时间似乎是laravel的基本响应时间。显然,查询速度慢会增加这一点

在大多数情况下,添加redis或memcached将大大降低响应时间,而不是使用db,这与laravel的基本响应时间非常接近

您应该确保在.env文件中将APP_DEBUG设置为false:

# /.env
APP_ENV=production
APP_DEBUG=false

运行
php artisan optimize

您有很多路线吗?在过去的版本中,这是一个瓶颈,导致了。不,我刚刚开始迁移,所以实际上有两条路径-一条用于hompage,另一条用于laravel附带的默认路径,我为其设置了URI。Laravel是新安装的,所以它是5.1。您在控制器或程序的大部分中做什么?执行查询需要多长时间?你的服务器规格是什么?您是否正在缓存当前webstore上的任何内容(查询等)。Contoroller只返回一个视图。在视图中,插入了一个导航帮助器,它返回Section::categories()->public()->get();,具有原始条件的范畴和公共存在范围。翻译将作为一对多关系加载。那个就这样。正如我在问题中提到的,两个应用程序都没有设置缓存。后续的请求如何?是300毫秒左右吗?众所周知,Laravel在初始请求编译时加载速度较慢。但是它会随着不再需要编译而逐渐减少。谢谢。不确定流明是否适合ecom。正如我在上面的评论中所说,这在真正的VPS(即不是本地VM)上不是一个问题。很抱歉,我没有可访问的数字。只是为了增加细节而添加了流明,您认为它不适用于您的用例是正确的。很高兴你弄明白了:)