点评 :最近有位站长朋友咨询一个十几万数据的DedeCMS系统,发现用Dedecms生成速度,慢的跟蜗牛一样,CPU达到100%,有时候半天都不动。 本人经过查找在dedecms官网论坛找到个合适的代码

点评:最近有位站长朋友咨询一个十几万数据的DedeCMS系统,发现用Dedecms生成速度,慢的跟蜗牛一样,CPU达到100%,有时候半天都不动。     本人经过查找在Dedecms官网论坛找到个合适的代码,试验修改后,速度要快很多!修改方法如下: 

找到文件:include/inc/inc_fun_SpGetArcList.php 

复制代码 代码如下:
for($i=0;$i<$ridnum;$i++){ 
if($tpsql=="") $tpsql .= " And ( (".TypeGetSunID($reids[$i],$dsql,'arc')." Or arc.typeid2='".$reids[$i]."') "; 
else $tpsql .= " Or (".TypeGetSunID($reids[$i],$dsql,'arc')." Or arc.typeid2='".$reids[$i]."') "; 

把上面的这段注释掉,替换为下面的代码: 

复制代码 代码如下:
for($i=0;$i<$ridnum;$i++){ 
if($tpsql=="") $tpsql .= " And (".TypeGetSunID($reids[$i],$dsql,'arc'); 
else $tpsql .= " Or ".TypeGetSunID($reids[$i],$dsql,'arc'); 

速度快好几倍,原理就是,副栏目不用参与了,极大的提高了运行速度。 

下面是5.1版本的 
一样的文件 
查找 

复制代码 代码如下:
$orwhere .= " And ( arc.typeid in ($sonids) Or arc.typeid2 in ($sonids) ) "; 

修改为 

复制代码 代码如下:
$orwhere .= " And arc.typeid in ($sonids) "; 

下面看对生成的具体优化步骤: 
  1、关闭副栏目,生成速度从50秒20页降到20秒20页 
  2、删除文档模版中的调用随即文档的标签,即arclist中带有sort=rand的 开启后台中能找到的所有缓存,生成速度从20秒20页降到6秒多一页 
  3、删除文档模版中的相关文档,生成速度从6秒猛降到不到一秒,到达中部的时间 
至此结束,终于满足了,不用再享受龟速的生成速度了!
转载请说明出处
知优网 » Dedecms 生成静态页面速度优化方法

发表评论

您需要后才能发表评论