首页 > 解决方案 > Codeigniter 控制器执行时间非常慢

问题描述

任何人都可以帮助我解决这种情况吗?当我使用辅助方法运行控制器/视图时,输出时间真的很慢:

BENCHMARKS   
Loading Time: Base Classes      0.0320 
Controller Execution Time ( EquipUser / Detalii )   3.3030 
Total Execution Time    3.3350

我的控制器如下所示:

public function detalii($service_tag){
    // 1. Incarcare elementele necesare in pagina
        $this->load->library('javascript');
        $this->load->library('javascript/jquery');
        $this->output->enable_profiler(TRUE);
    //2. Definere campuri pentru incarcare in view
        $data['titlu_pagina'] = $service_tag . " "; 
        $data['service_tag'] = $service_tag;
        $data['echipamente'] = $this->Echipament->get_by_service_tag($service_tag);
    //3. Incarcare view principal
        $this->load->view('detalii', $data);
    }

视图区域:

<section id="diverse" class="col-12 col-md-6">
    <script type="text/javascript">
        $(function () {
            $('#ping').click(function () {
                var result="<?php echo doPing($echipament->hostname); ?>";
                alert(result);
                return false;
            });
        });
    </script>
<a class="btn btn-toolbar" id="ping" onclick="ping()">Ping</a>
</section>

和辅助功能:

function pingExec_dr($host){
    exec(sprintf('ping -w 1 %s', escapeshellarg($host)), $res, $rval);
    return $rval === 0;
}

function doPing($host){
    $up = pingExec_dr($host);

    if($up){
        $result = "<div class='alert alert-success' role='alert'>";
        $result .= $host . " ONLINE";
        $result .= "</div>";        
    } else {
        $result = "<div class='alert alert-danger' role='alert'>";
        $result .= $host . " OFFLINE";
        $result .= "</div>";
    }

    return $result;
}

我还尝试了来自:[GitHub - Ping-geerlingguy][1] [1]: https://github.com/geerlingguy/Ping的 PING 类,我有相同的超时,但延迟为 1 毫秒。我已经测试了 jQuery 之外的方法调用,结果相同。我已经在另一个测试项目(不使用 CI)中尝试了 ping 方法/类,并且它没有延迟地工作。

请帮我。谢谢你。

标签: phpcodeigniterexec

解决方案


推荐阅读