cakephp函数最多花费大约100毫秒需要更长的时间

时间:2013-07-11 13:26:44

标签: optimization cakephp-2.0

我的应用程序已经使用了6个月,很久以前我就不再被要求解决新的错误..生活很棒:))

现在我已完成其他项目的工作,并希望通过我的应用程序加快速度。

问题

E.G。:我有一个非常简单的函数,我用AJAX调用。

在浏览器控制台中,我看到该功能需要700毫秒才能完成。我计算了要触发的函数体中的实际代码需要多少毫秒。毫不奇怪,只有大约100毫秒,这没关系。

public function getObjVisibility() 
{
    $start = round( microtime( true ) * 1000 );

    $this->autoRender = false;
    $tmp = $this->Obj->find ( 'first', array 
        (
            'conditions' => array 
            ( 
                'obj_id' => $_POST['id']
            ),
            'fields' => array
            (
                'visible'
            )
        )
    );
    $result = $tmp['Obj']['visible']; //added field so I could count even the assigning

    $end = round( microtime ( true ) * 1000 );
    fb::log( "time: ", $start - $end ); // firePHP logging to console

    return $tmp['Obj']['visible'];
}

因此该功能最多需要100毫安,至少需要700左右。

你们有谁知道发生了什么事?我无法为谷歌提出一个合理的问题给我一个合理的答案,所以我问你们:)

2 个答案:

答案 0 :(得分:2)

蛋糕请求/响应通过调度,路由,渲染等进行...因此它不仅仅是该操作的主体。你试过DebugKit吗?它具有一些分析功能,可以帮助您隔离慢速部分。

答案 1 :(得分:0)

发生这些问题的主要原因显然是我的应用程序需要几个同步的AJAX调用才能执行某些操作。

由于我在实现过程中同步和异步调用我没有想到必须从服务器发送和接收的数据包,并且发送了几个小请求,每个请求都需要一些时间来加载,具体取决于客户端连接。

我通过重新同步应用程序(从jQuery AJAX调用中删除async: false参数)和/或通过一个请求从服务器获取多个信息来解决此问题。

如果您认为这是一个坏主意,请告诉我: - )