亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 對 json 響應的低性能

Laravel 對 json 響應的低性能

PHP
米脂 2022-06-17 16:12:23
在我的 Laravel 應用程序中,數據是通過 ajax 加載數據表的。表現非常糟糕。所以我創建了一個測試腳本來測量加載時間。    public function index()    {        $mt1 = microtime(true);        $data = $this->repo->all();        $resource = ProjectResource::collection($data);        $response  = response()->json($resource);        $mt2 = microtime(true);        dd($mt2 - $mt1);    }數據庫中有 200 行。該模型有 4 個關系。上面的腳本需要> 6s來渲染數據。如果我取消注釋該行$response  = response()->json($resource);,加載時間<0.2s有哪些方法可以加快 JSON 響應的渲染時間?$數據模型:附加:trait ProjectAttribute{    public function getActionAttribute()    {        return $this->editButton().$this->deleteButton();    }    public function editButton()    {        if (Auth()->user()->can('update salesOrder')) {            return '<button data-toggle="tooltip" data-placement="top" title="'.__('buttons.general.crud.edit').'" class="btn btn-info btn-sm editProject mr-1" ><i class="fas fa-pen"></i></button>';        }        return "";    }    public function deleteButton()    {        if (Auth()->user()->can('delete salesOrder')) {            return '<button data-toggle="tooltip" data-placement="top" title="'.__('buttons.general.crud.delete').'" class="btn btn-danger btn-sm deleteProject" ><i class="fas fa-times"></i></button>';        }        return "";    }    public function getActiveLabelAttribute()    {        if ($this->active) {            return "<span class='badge badge-info'>Aktiv</span>";        }        return "<span class='badge badge-secondary'>Inaktiv</span>";    }}該模型:<?phpnamespace App\Models\Project\Project;use Altek\Accountant\Contracts\Recordable;use Altek\Accountant\Recordable as RecordableTrait;use App\Models\Traits\Uuid;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\SoftDeletes;
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

有幾種方法可以對請求進行概要分析,以獲取有關服務器需要這么長時間才能響應的一些信息。

  • BlackFire - 默認情況下在 Laravel Homestead 開發中或 Laravel Forge 中用于生產

  • Laravel DebugBar - 也可以用于開發(我個人最喜歡的)

這些將為您提供更多關于可能需要時間才能完成的代碼部分的信息,如果您在谷歌周圍搜索 Laravel 或 PHP 分析器以找到適合您需求的內容,還有更多信息。


查看完整回答
反對 回復 2022-06-17
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

查看Enlightn,這是一個提高 Laravel 應用程序性能和安全性的工具。它會掃描您的代碼和服務器配置,以提供有關提高性能和安全性的可行建議。



查看完整回答
反對 回復 2022-06-17
  • 2 回答
  • 0 關注
  • 185 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號