繁体   English   中英

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

[英]CodeIgniter incredibly slow on small page load

所以我遇到一个问题,我可能应该只在大页面上,而在任何页面上都无法获取。

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

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

Ranks.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驱动程序。

有谁知道为什么它这么慢或者我可以轻松设置任何工具进行调试?

谢谢

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

问题如下:

我的数据库的检索速度非常慢(我们在db4free或smth上有一个演示),这花费了很长时间。 我们还把$db['default']['pconnect']设置为false,这意味着我们不得不不断地重新连接数据库。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM