【问题标题】:Rest API w with SlimPhp take too much time使用 SlimPhp 休息 API 花费太多时间
【发布时间】:2017-05-25 00:29:28
【问题描述】:

我使用 php 和 slim 开发了一个 REST API,我正在尝试对其进行优化,对于带有 slim 的简单空请求,我每秒有 56 个请求,如果我不使用 slim,我有 259r/s。

我应该怎么做才能用 Slim 达到 259r/s

-- 索引.php

use \Slim\App;

$container=include('Config/Container.php');
$app = new App($container);
$app->get('/metro',function(){
echo "metro";
});

-- 容器.php

$config = [
    'settings' => [
        'displayErrorDetails' => true,
        'mode'=>'developpement',
        'determineRouteBeforeAppMiddleware' => true,
        'addContentLengthHeader' => false,
    ]
];

.htacess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
php_flag display_errors 1

【问题讨论】:

  • 你的代码在哪里?我们应该如何提供帮助?这些统计数据是什么?
  • @nerdlyist 这是一个空请求,意味着一个空代码。 .我创建了一个客户端 python 来请求服务器多次获取这些统计信息
  • 你的索引和 htacess 是什么样的?
  • @nerdlyist 我用代码更新了它
  • 该设置似乎不会妨碍任何事情。与其他方式相比,您在狭窄路线上的响应时间是否较慢?

标签: php rest api slim


【解决方案1】:

根据定义,所有框架都比无代码慢,因为还有更多事情要做。

<?php
echo 'metro';

将比使用此代码的 Slim 应用程序快得多:

use \Slim\App;

$config = include 'Config/Container.php';
$app = new App($config);
$app->get('/metro', function($request, $response){
    return $response->write("metro");
});

$app->run();

这是因为 Slim 应用程序做了很多工作以使其能够响应不同的 URL(路由)并处理错误情况。如果您转到/foo URL,那么第一块代码不会发回 404。

要进行比较,您需要使“非框架”版本具有与 Slim 版本相同的功能。性能差异会小很多。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    相关资源
    最近更新 更多