在控制器构造函数中加载不需要的模型是否会影响CodeIgniter 2中的性能?

时间:2015-01-27 07:29:13

标签: php codeigniter codeigniter-2

哪一个性能更好?在构造函数中加载控制器中使用的所有模型,或仅在所需的函数中加载模型?或者有什么区别?如果仅在大型控制器的某个功能中需要该模型,如果它在构造函数中加载,是否会影响性能?

class myController extends CI_Controller {

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

    public function useLoginModel(){
        $this->load->model('loginmodel');
        $this->loginmodel->login();
    }
}

2 个答案:

答案 0 :(得分:3)

如果你只在那个功能中使用它,那么只在那里加载它可能更快。但这会降低可持续性。如果每次要在某个地方使用模型时,您都必须重新检查模型是否已加载。所以我会坚持在构造函数中加载所有东西(显然取决于模型的数量)。

有一个简单的优化规则:如果它不慢,不要优化它。你从上面的变化中获得的收益很少,但是在可持续性方面受到严重打击(或者像symfony所说的那样#34;开发人员体验")

答案 1 :(得分:-1)

您可以在配置文件夹中的autoload.php中添加它。

$autoload['model'] = array('loginmodel');

希望它有所帮助。