小页面加载时CodeIgniter的运行速度极其慢

时间:2019-05-02 13:00:31

标签: php codeigniter page-load-time

所以我遇到了一个问题,我应该只在大页面上遇到问题,而在任何页面上都遇到了问题。

我正在尝试使用CodeIgniter制作REST api,它可以工作,但是我加载的任何页面都很慢。我说的是20到30秒的页面加载时间,总值504字节。

我添加了额外的基准,它显示下载数据大约需要0.04秒。

Rankings.php(控制器)

class Rankings extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->model('rankingsmodel');
    }

    /**
     * Index Page for this controller.
     */
    public function index()
    {
        $this->benchmark->mark('code_start');

        $rankings =$this->rankingsmodel->getAllRankings();
        $mappedRankings = array_map(array($this, 'mapRank'), $rankings, array_keys($rankings));

        $this->benchmark->mark('code_end');
        echo $this->benchmark->elapsed_time('code_start', 'code_end');

        return $this->jsonIFy($mappedRankings);
    }

    public function mapRank($ranking, $k)
    {
        $ranking['rank'] = $k;
        return $ranking;
    }

    public function jsonIFy(array $data = array())
    {
        echo json_encode($data);
    }
}

我的排名模型

class RankingsModel extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
    }

    public function getAllRankings()
    {
        $this->benchmark->mark('code_start2');

        $query =$this->db->query('SELECT * FROM characters3 WHERE gm < 3 ORDER BY rebirths DESC')->result_array();

        $this->benchmark->mark('code_end2');
        echo $this->benchmark->elapsed_time('code_start2', 'code_end2');
        return $query;
    }
}

我完全不知道为什么页面加载如此之慢的速度,而我的基准测试却表明加载页面需要0.03 / 0.04。我试过设置xdebug,但是没有设置它的运气。我使用的是Codeigniter随附的常规mysqli驱动程序。

有人知道为什么它这么慢还是我可以轻松设置调试工具吗?

谢谢

1 个答案:

答案 0 :(得分:0)

好的,经过几个小时的挖掘,我发现了问题所在。

问题如下:

我的数据库检索非常缓慢(我们在db4free或smth上进行了演示),这花费了很长时间。我们还将$db['default']['pconnect']设置为false,这意味着我们必须不断重新连接到数据库。

出于测试目的,将pconnect设置为true将解决此问题。哦:获得更快的生产数据库。