风讯官方论坛

首页 » FoosunCMS交流区 » Foosun4.x安装使用 » 风讯刷新记录的参数 G_REFRESH_SPEED ,没有实现,倒是我自己实现了
biaosoft - 2008-7-16 20:59:00
在常量const 文件中,下面这个参数是无效的.搜索了整个站点,再未找到这个值.似乎是被程序员遗忘了.

'第一参数:表示多少秒刷新一次,第二个参数代表每次刷新多少个记录
Const G_REFRESH_SPEED = "1,5"

这是实现一次生成HTML文件多少个再报告的功能,可惜在代码中再没找到与此任何有关的代码.

倒是我自己实现了这个功能.不过意义也不大.

在网络的情况下.有没这个功能都无所谓.但如果你的网络不好,有延时,效果就出来了.

经测试,影响生成速度,主要在下面两点:

1,风讯CMS系统的代码质量,优化逻辑,优化代码.

2,服务器速度,和CPU的限制.生成HTML是效CPU的工作(因为需要反复的字符串操作),对文件系统要求倒不高(因为文件小).而一般的网站都对每个空间作了一定的CPU限制,比如 1%.这样你的服务器只能分配1%的效能给你用.


因此要改进生成速度,只有让风讯去优化代码,才行.

风讯CMS 的代码,注释很少.应该是故意的不加注释. 庞大的代码量,个人实难作分析.
biaosoft - 2008-7-16 21:24:00
风讯CMS 生成页面的原理是这样的

先是查找出所有 {FS ....  }  这样的标签.    这个工作不效时,因为模版页标签不多.

再搜索那些标签中的标签,  就是那些系统函数 类似这样的,{ |  |  |} 
这个工作量就大了.要反复检查, 然后取得HTML代码,再加进入去,替换标签.

替换的过程中,它是分系统的,不同的系统不同的操作.而且每个网页都要重复这样的过程一次.

总之,过程是非常慢,非耗CPU的工作!

虽然风讯的代码总体上写得不错.但是还是要批评它的不足.这样的生成速度是不合格的!

那么难道就没办法优化了吗?不是的.

我们都知道,网页上的内容有些是动态的,有些是静态的,有些是某种情况下是静态的.这样就提供给了我们一种可能.

1,那些不需要变动的内容,我们可以缓存到内存.

2,一般的动态内容都涉及到 NewsID ,这个变了,内容才变,那么与这个无关的,即不会变动的内容,执行一次后,就可以缓存到内存.

3,再如那些 类似 { | | | | } 这样的系统变量.比如,新闻列表.为什么不可以生成一个模版页面,把需要的内容再用标签标记,缓存到内存,当需要变动时,进行替换呢?  有必要每次都去检测参数,去生成页面吗?
womode - 2008-7-16 22:49:00
多谢楼主分享!
1
查看完整版本: 风讯刷新记录的参数 G_REFRESH_SPEED ,没有实现,倒是我自己实现了