2008年4月2日星期三

Z-Blog首页实现了静态化

  今天花了两个小时的时间将我使用的Z-Blog 1.7的首页实现了静态化,通过这个静态化处理,使得我的Blog的负荷能力大为增强。

  之所以将其静态化,是因为前几天我用Microsoft Web Application Stress Tool对我的博客进行网站性能测试的时候,我发现100个并发就可以让我的Intel双核至强5110 CPU达到100%负荷,这令我大吃一惊。仔细分析了一下,发现可能是因为default.asp中的Call System_Initialize引起的性能问题,因此我就打算使用静态化的方法跳过这条命令。

  这个静态化其实是伪静态化,修改default.asp文件,当调用default.asp的时候会自动判断default.html文件是否存在,存在的话就读取这个文件的内容,然后修改c_system_event.asp文件,在重建缓存和提交评论的时候会自动重建首页html文件,最后修改一下首页的模板,将显示评论修改为JavaScript的方式,重建一下,即可正常使用。再使用Microsoft Web Application Stress Tool测试,效果明显,CPU再也没有上30%了。

  具体修改方法是:修改c_system_event.asp,加入下面函数:

Function BlogReBuild_Index()

 Dim ArtList
 Set ArtList=New TArticleList
 ArtList.LoadCache
 ArtList.template="DEFAULT"

 If ArtList.ExportByCache("","","","","","") Then
  ArtList.Build
  Call SaveToFile(BlogPath & "default.html",ArtList.html,"utf-8",True)
 End If
 BlogReBuild_Index=True

End Function

  然后在重建缓存函数MakeBlogReBuild和提交评论函数PostComment和提交引用函数PostTrackBack的尾部加入语句BlogReBuild_Index。

  之后修改default.asp

  在其文件开头加入以下语句:

If trim(Request.QueryString.Item) = "" Then 
Server.Transfer "default.html"
Response.End
End If

If trim(Request.QueryString.Item)<>"" Then
 Call System_Initialize()
Else
 Call System_Initialize_WithOutDB()
End If

  以上修改在Z-Blog 1.7中实现,使用Z-Blog 1.8的可以忽略此文,因为Z-Blog 1.8已经完全解决了以上的所有问题,解决了System_Initialize的性能问题,并且也有首页静态化插件,不会再发生我现在这种问题了。