使用Laravel做接口开发,记录程序执行的时间的LOG,显示的结果和浏览器调用接口返回的时间差距太大
这是日志记录的执行时间
这是接口返回的时间
相比的差距有些大,不知道是什么原因?
Controller 入口返回的方法不使用return,直接使用echo,反倒是快一些
Laravel 的版本为8.65,环境为ubuntu18 + php7.4
只能提个建议,可以对比项目里其他的接口在日志里显示用时多久,接口时间返回用时多久,然后再排查是这个接口的问题,或者项目的问题,还是环境有问题,如果只是这个接口有问题就查代码,如果所有接口都很慢看看是不是环境有问题了
抽空读读代码,可能你就会明白 return 和 echo die 的区别了。
所有接口都是这样那就是环境原因
return 比 echo die 慢是因为他返回的是一个
response
对象,通过调用 send 方法在 echocontent
,在返回response
对象时候,常见的比如一些后置中间件操作会消耗响应时间,而直接 echo die 就不会经历后续逻辑。参考代码:
谢谢诸位提出的答案,还是我对laravel的学习认知不够,感谢各位的解答!
看下是不是开了xdebug扩展,我之前没注意开了然后也是一样的情况 :joy:
服务器啥配置的
如果不是线上代码,可以安装 Telescope 可以追踪到在哪里花时间比较多。