休息 API w 与 SlimPhp 花费太多时间
Rest API w with SlimPhp take too much time
我使用 php 和 slim 开发了一个 REST API,我正在尝试优化它,对于 slim 的一个简单的空请求,我每秒有 56 个请求,如果我不使用slim 我有 259r/s .
我应该怎么做才能使用 Slim 达到 259r/s
-- Index.php
use \Slim\App;
$container=include('Config/Container.php');
$app = new App($container);
$app->get('/metro',function(){
echo "metro";
});
-- container.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
根据定义,所有框架都比 no-code 慢,因为还有更多事情要做。
即
<?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 应用程序正在做更多工作以使其能够响应不同的 URLs(路由)并处理错误情况。也就是说,如果您转到 /foo
URL,第一段代码不会发回 404。
为了进行比较,您需要使 "non-framework" 版本具有与 Slim 版本相同的功能。性能差异会小很多。
我使用 php 和 slim 开发了一个 REST API,我正在尝试优化它,对于 slim 的一个简单的空请求,我每秒有 56 个请求,如果我不使用slim 我有 259r/s .
我应该怎么做才能使用 Slim 达到 259r/s
-- Index.php
use \Slim\App;
$container=include('Config/Container.php');
$app = new App($container);
$app->get('/metro',function(){
echo "metro";
});
-- container.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
根据定义,所有框架都比 no-code 慢,因为还有更多事情要做。
即
<?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 应用程序正在做更多工作以使其能够响应不同的 URLs(路由)并处理错误情况。也就是说,如果您转到 /foo
URL,第一段代码不会发回 404。
为了进行比较,您需要使 "non-framework" 版本具有与 Slim 版本相同的功能。性能差异会小很多。