Php 加载模型和库花费的时间太长

Php 加载模型和库花费的时间太长,php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我一直在Codeigniter上构建一个大型社交应用程序。 有一个函数加载4个模型和1个库5个资源,然后执行一些PHP逻辑和DB插入/选择等。这5个资源是此函数特有的,不经常需要,因此无法自动加载 function abc(){ log_message('error' , 'block 1'.date('Y-m-d H:i:s')); $this->load->model('model1'); $this->load->model('model2');

我一直在Codeigniter上构建一个大型社交应用程序。 有一个函数加载4个模型和1个库5个资源,然后执行一些PHP逻辑和DB插入/选择等。这5个资源是此函数特有的,不经常需要,因此无法自动加载

function abc(){

  log_message('error' , 'block 1'.date('Y-m-d H:i:s'));

  $this->load->model('model1');
  $this->load->model('model2');
  $this->load->model('model3');
  $this->load->model('model4');
  $this->load->library('lib1');

  log_message('error' , 'block 2'.date('Y-m-d H:i:s'));
  // Some DB queries performed here

  if(){
     // Some PHP code
  }else{
    // Some PHP code
  }

 // Some DB queries performed here

 log_message('error' , 'block 3'.date('Y-m-d H:i:s'));
}
通过使用Codeigniter的分析类,我发现整个函数执行起来大约需要8秒,而其中的DB查询只需要1秒。 在我的代码中记录了许多时间点之后,我发现在8秒内,加载这些库和模型大约需要6.5秒,而处理代码只需要1秒多

通过对我的函数进行分析并以特定的时间间隔记录时间戳,我发现我的全部函数abc需要8秒才能执行。但是区块1和区块2之间的时差为7秒,而区块2和区块3之间的时差仅为1秒。所以至少我知道加载资源需要花费很多时间,我不知道为什么:

8秒的函数执行时间是不可接受的,我无法找到解决方案。请帮忙


该网站位于DigitalOcean云上,内存为512 MB,只有2名用户在测试。我是否需要增加RAM来实现这一点。如何加快加载时间…

很难说在不检查库和模型代码的情况下如何加快加载时间,无论如何,您应该能够测试您的应用程序基准测试,只需输入:

$this->output->enable_profiler(true);
在视图、模型或控制器内部


试试重构?基准测试?如果您正在寻求帮助,可能需要添加一些代码。如果可以,请使用获取cachegrind评测输出文件,并将其提供给wincachegrind或kcachegrind,以便更精确地查看时间的流逝。这也可能是一个io问题。@complex857是否有任何教程或链接显示如何做到这一点?@nick fury我已经在使用评测了。当然,我会显示我的代码layout@Jigar,你可以尝试一个,基本上你所需要做的就是安装xdebug php扩展并修改ini设置。我的库中的代码是什么并不重要,因为我现在只加载了它们,但没有使用/调用它们。正如我提到的,加载这些文件花费的时间太长了。不是execution@Jigar所以它是你的服务器,或者你有成千上万行的代码在里面,不管怎样读=解析