我一直在 Codeigniter 上构建一个大型社交应用程序。有一个函数可以加载 4 个模型和 1 个库(5 个资源),然后执行一些 PHP 逻辑和数据库插入/选择等。这 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 的 Profiling Class,我发现整个函数执行大约需要 8 秒,而其中的 DB 查询只需要 1 秒。在我的代码中许多点的记录时间之后,我发现在 8 秒中,仅加载这些库和模型就花费了大约 6.5 秒,而代码的处理只花费了 1 多秒。
通过对我的函数进行分析并以特定的时间间隔记录时间戳,我发现我的总函数 abc 需要 8 秒才能执行。但是块 1 和块 2 之间的时间差是 7 秒,而块 2 和块 3 之间的时间差只有 1 秒。所以至少我知道它的加载资源需要很多时间我不知道为什么:(
8 秒的功能执行是不可接受的,我无法确定解决方案。请帮忙……</p>
该站点托管在具有 512 MB RAM 的 DigitalOcean 云上,只有 2 个用户对其进行测试。我是否需要增加 RAM 才能实现这一点。我怎样才能加快这个加载时间...</p>