繁体   English   中英

在 Laravel 中获取数据时 API 的加载时间非常慢

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM