【发布时间】:2016-04-17 11:58:10
【问题描述】:
我一直在运行一些基准测试来找出我的应用程序运行速度极慢的原因。我们的应用程序在 ec2 m3 实例上运行,并在 RDS 上使用 mysql 数据库。起初我以为这与 RDS 或配置错误有关。但是当我开始在代码中进行时间检查时,我得出的结论是,与我的代码一样优化 - 显然 laravel 内核本身需要很长时间才能执行。
在我的一个主控制器中,控制器内所有代码的平均执行时间约为 200 - 175 毫秒。
但是页面加载需要花费 1.3 秒的时间!控制器的代码肯定没有错,所以我认为一定是其他原因导致了问题,所以我对 Laravel 应用程序公共目录中 index.php 文件中的基本代码进行了基准测试,发现创建 Illuminate\Contracts\Http \Kernel 对象和获取/发送响应单独花费了 1120 毫秒!
<?php
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
// FROM HERE ->
$kernel = $app->make('Illuminate\Contracts\Http\Kernel');
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
//<--to here takes 1120 ms of which 200 ms is my code in the controller
$kernel->terminate($request, $response);
我假设这是一个框架问题,但我该如何克服这个问题 - 平均一秒的响应时间在这里是不可接受的。
【问题讨论】:
标签: laravel optimization amazon-ec2 laravel-5 amazon-rds