Php 在控制器构造函数中加载不需要的模型是否会影响CodeIgniter 2中的性能?
哪一个性能更好?在构造函数中加载控制器中使用的所有模型,还是仅在所需函数中加载模型?还是有什么区别?如果模型只在大型控制器的一个函数中需要,那么在构造函数中加载该模型是否会影响性能Php 在控制器构造函数中加载不需要的模型是否会影响CodeIgniter 2中的性能?,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,哪一个性能更好?在构造函数中加载控制器中使用的所有模型,还是仅在所需函数中加载模型?还是有什么区别?如果模型只在大型控制器的一个函数中需要,那么在构造函数中加载该模型是否会影响性能 class myController extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('loginmodel');
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称之为“开发人员体验”)您可以将其添加到config文件夹中的autoload.php中
$autoload['model'] = array('loginmodel');
希望有帮助。这与问题无关。如果您使用多个型号,则最好在各自的功能中加载,如果只有一个功能,则自动加载。但无论如何,差别会更小。