[英]Load time is very slow in API while fetching data in Laravel
我正在使用一个简单的查询来列出 Laravel 中的所有用户。
这是我在 Eloquent 中使用的查询:
$user = User::find(1);
我得到了所有需要的数据,但是得到的时间超过了1.3秒。 在 Doctrine 中使用相同的方法在 300 毫秒内加载数据。
Laravel 中是否有 Eloquent 的问题???
这可能会帮助面临此类问题的人。 我在 lumen api 后端遇到了类似的问题。 我的 lumen api 大约需要 30-35 秒才能返回约 1500 条数据,而在共享主机上使用原始 php 大约需要 1.2 秒。
我搜索了几个小时来找到问题,但一无所获。 Stirdo 的回答让我有了衡量执行查询时间的想法。 执行时间表明,雄辩的方法没有任何问题,问题出在 return 语句内部。 我遵循的创建 api 的教程使用了这样的东西-
return response()->json([$data]);
我用-
return json_encode($data);
这个简单的更改将我的响应时间从 ~30 秒缩短到 ~2.5 秒。 可能是 json() 方法只是一遍又一遍地迭代数据以生成 json,这反过来会造成巨大的响应延迟。 因此,如果像我这样的新手试图解决 laravel/lumen 的延迟响应问题,这可能会有所帮助。 json()和json_encode() 的参考。
转到 [您的项目目录]->laravel->app->config.php 并更改
'url' => '127.0.0.1'
而不是 localhost,看看这是否有什么区别。
如果这不起作用,您可以 为 laravel安装Clockwork,这将为您提供一个时间线,了解需要这么长时间。
这是我正在谈论的时间线的一个例子:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.