点评 :最近有位站长朋友咨询一个十几万数据的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秒猛降到不到一秒,到达中部的时间
至此结束,终于满足了,不用再享受龟速的生成速度了!
找到文件: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 生成静态页面速度优化方法
知优网 » Dedecms 生成静态页面速度优化方法