首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Phalcon \Http\Response()的Phalcon非常慢;

使用Phalcon \Http\Response()的Phalcon非常慢;
EN

Stack Overflow用户
提问于 2015-03-11 09:22:02
回答 1查看 1K关注 0票数 1

我和Phalcon遇到了一个很奇怪的问题。

每当我在控制器内使用Response时,框架就会变得非常慢。以下是我的简单控制器:

代码语言:javascript
复制
<?php

// file: app/controllers/TestController.php
use Phalcon\Mvc\View;

class TestController extends ControllerBase
{

 private $response;

 public function initialize()
 {
  $this->view->setRenderLevel(View::LEVEL_NO_RENDER);

  $this->response = new Phalcon\Http\Response();
  $this->response->setStatusCode(200, "OK");
 }

 public function indexAction()
 {
   $this->response->setContent("phalcon")->send(); // very slow
 }

}

每当我使用new Phalcon\Http\Response();时,Phalcon就变得非常慢。例如,用以下方法测试它:

代码语言:javascript
复制
ab -c 50 -n 100 ...

请求/秒:10

如果我使用空白控制器

请求/秒:1000+

路线是:

代码语言:javascript
复制
<?php
//file: app/config/routes.php

$router = new \Phalcon\Mvc\Router();
$router->add("/:controller/:action", array("controller" => "test", "action" => "index"));

我在AWS上测试了它:

代码语言:javascript
复制
c4.large
PHP 5.5.9-1ubuntu4.6 (cli) (built: Feb 13 2015 19:17:11)
2 cpu - 3.75gb ram
Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.6

我们在OSX10.10.1的Macbook pro上也经历过同样的行为

问题是当我在响应上调用send()方法时:

代码语言:javascript
复制
$this->response->send(); // slows down everything

备注

正如@Phate01 01所建议的,我尝试了return $response;而不是$response->send();,它仍然非常慢

EN

回答 1

Stack Overflow用户

发布于 2015-03-11 09:45:43

我上了一页:http://docs.phalconphp.com/en/latest/reference/response.html,他们说

如果您正在使用完整的MVC堆栈,则不需要手动创建响应。但是,如果需要直接从控制器的操作返回响应,请遵循以下示例:

代码语言:javascript
复制
<?php
class FeedController extends Phalcon\Mvc\Controller
{

    public function getAction()
    {
        // Getting a response instance
        $response = new \Phalcon\Http\Response();

        $feed = //.. load here the feed

        //Set the content of the response
        $response->setContent($feed->asString());

        //Return the response
        return $response;
    }

}
?>

如您所见,它直接返回Response对象。

我想您应该在控制器外部调用->send(),并且添加一些头也会有帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28982613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档