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


Does loading unneed models in controller constructor affect performance in 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();
    }
}

如果您只在该函数中使用它,那么仅在那里加载它可能会更快。但这会降低可保留性。每次要在某处使用模型时,您始终必须重新检查模型是否已加载。所以我会坚持在构造函数中加载所有内容(显然取决于模型的数量)。

优化

有一个简单的规则:如果它不慢,就不要优化它。你从上面的变化中获得的收益很少,但在可保留性方面遇到了严重的打击(或者正如symfony所说的"开发人员体验")

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

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

希望对您有所帮助。