我怎样才能提高 Laravel 的表现?

How can I improve my Laravel performance?

我的网站在 Laravel 5.4。上个月它的速度很好而且加载速度很快,但是这个月我开始有流量了。现在我的网站很慢。加载网站需要 3-7 秒。

请指导我如何提高网站流量。

您需要了解 Laravel 的标准,以便我们可以使我们的应用程序在速度、性能等方面达到最佳。

  • 首先我们需要在模型中添加所有数据库通信,即所有数据库查询
  • 尝试使用Eloquentrelationship/query来get/set数据
  • 不要为每个循环使用最大值
  • 图像必须经过良好优化并且尺寸应该更小。如果图像是过多的 MB,那么加载需要更多时间
  • 服务器运行状况应该很好。如果您使用的是 AWS、Digital Ocean,那么您需要不断检查服务器运行状况,例如 RAM、CPU、存储、带宽..

要改进您的 Laravel 网站,您必须考虑很多事情。

  • 您必须查看所有数据库查询。用于监控数据库 查询你安装 Laravel debugbar 或新包 Laravel telescope。
  • 您必须在您的应用程序中使用预先加载
  • 优化您的图片,并使用延迟加载来加载图片。
  • 压缩您的断言(CSS、JS)
  • 使用 CDN
  • 如果这些都不起作用,那么您需要增加服务器资源并使用负载平衡器。
  • 并始终检查服务器运行状况,如 RAM、CPU、存储、带宽。

您还必须观看此 "Quick Laravel performance improvement" 视频教程。这一定会帮助您改进您的网站。

https://www.youtube.com/playlist?list=PL1TrjkMQ8UbWRZ4tv4GW_KwbyavOxt6bc

要改进您的 Laravel 网站,您必须考虑很多事情。

在您的应用程序中使用预先加载

在查询中使用 ->cursor() 而不是 get() 方法。

例如:

$data = DB::table("users")
->select('*')
->cursor();

使用缓存

$data_key = "any-key-variable";

    if (Cache::has($data_key)) {
          $getData = Cache::get($data_key);
    } 
   else {
     $getData = DB::table("users")
                    ->select('*')
                    ->cursor();
       Cache::put($data_key, $getData,720);
    }
}

此外,在控制器的构造函数中使用它或调用函数

ini_set('memory_limit', '-1');
ini_set('max_execution_time', '3000');
ini_set('request_terminate_timeout', '3000');

例如

public function __construct()
{  
    ini_set('memory_limit', '-1');
    ini_set('max_execution_time', '3000');
    ini_set('request_terminate_timeout', '3000');             
}