簡體   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