如何弄清楚什么会减慢页面的加载速度

时间:2012-04-06 03:49:19

标签: php codeigniter cookies

我正在使用Codeigniter和Tank Auth身份验证库。当用户到达需要登录且未登录的页面时,他将被重定向到登录页面。

问题:在localhost上,经常在刷新网页时,在页面开始加载之前最多需要30秒!有时,在等待页面加载后,似乎我已经注销,因为加载的页面是我被重定向到的登录页面。在实时服务器上,不会发生页面加载之前的长延迟,但用户可以看似随机退出。

这里发生了什么?如何找出导致长加载时间的代码部分?什么导致随机注销?

PHP代码(控制器)

function index() {
    $this->load->module('auth');
    if(!$this->auth->tank_auth->is_logged_in()) {
         redirect('login');
    } 
// If user registered/logged in after landing on another page
    if($this->session->userdata('entry_url')) {
        $entry_url = $this->session->userdata('entry_url');
        $this->session->unset_userdata('entry_url');
        redirect($entry_url);   // redirect back to entry url before registration/login
    }

    // Set User Session Variables
    $user_id = $this->session->userdata('user_id');
    $this->load->model('main_model');
    $name = $this->main_model->get_user_first_last_name($user_id);
    $this->session->set_userdata('first_name', $name['first_name']);
    $this->session->set_userdata('last_name', $name['last_name']);

    $this->load->view('main');

的config.php

$config['sess_cookie_name']     = 'cisession';
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";
$config['cookie_secure']    = FALSE;

2 个答案:

答案 0 :(得分:0)

你的两个问题基本上都要求我们告诉你如何调试代码......如果你需要查看脚本的时间,请输入一些microtime()调用并输出差异以获得相当准确的执行时间

对于随机注销,任何人都可以在没有看到源代码的情况下提供任何帮助......你应该将范围缩小到不仅仅是“导致这种情况的原因”。任何事情都可能导致它,我们无法在没有更多信息的情况下提供相关见解。

Also, what have you tried?

答案 1 :(得分:0)

使用配置文件和基准测试类来分析您的代码。 http://codeigniter.com/user_guide/libraries/benchmark.html

另外,如果您有会话cookie,请检查它的大小。也许它超过了允许的限制(4096),这可能是导致用户退出的原因。