请教:关于论坛性能的问题!

yesir_xiaoye 2004-05-06 01:41:15
问题背景:
我编了一个论坛,为提高性能,将一些系统数据放在了application中,我在本机调试时,发现首页访问速度是62.5毫秒,但我把这个论坛放到服务器上去调试,却发现首页访问速度总是1800多毫秒,为什么差距这么大呢。。问题出在哪里了,我的这个程序编写得有问题,还是服务器有问题,还是带宽有问题?

请大家帮看看,谢谢!
...全文
14 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yesir_xiaoye 2004-05-07
up...
  • 打赏
  • 举报
回复
yesir_xiaoye 2004-05-06
'获得某个用户名为strUserName的用户信息数据集
Function CachePage_GetUser_From_User(strUserName)
'Dim Time1,Time2,Time3
'Time1 = Timer
Dim tempDataSet(22,1)
If Not IsArray(Application("CP_DataSet_User")) Then
tempDataSet(0,0) = "0"
Else
Dim intT1,intT2
intT2 = 0
intT1 = 0
For intT2 = 0 To UBound(Application("CP_DataSet_User"),2)
If CStr(Application("CP_DataSet_User")(1,intT2)) = CStr(strUserName) Then
tempDataSet(0,0) = Application("CP_DataSet_User")(0,intT2)
tempDataSet(1,0) = Application("CP_DataSet_User")(1,intT2)
tempDataSet(2,0) = Application("CP_DataSet_User")(2,intT2)
tempDataSet(3,0) = Application("CP_DataSet_User")(3,intT2)
tempDataSet(4,0) = Application("CP_DataSet_User")(4,intT2)
tempDataSet(5,0) = Application("CP_DataSet_User")(5,intT2)
tempDataSet(6,0) = Application("CP_DataSet_User")(6,intT2)
tempDataSet(7,0) = Application("CP_DataSet_User")(7,intT2)
tempDataSet(8,0) = Application("CP_DataSet_User")(8,intT2)
tempDataSet(9,0) = Application("CP_DataSet_User")(9,intT2)
tempDataSet(10,0) = Application("CP_DataSet_User")(10,intT2)
tempDataSet(11,0) = Application("CP_DataSet_User")(11,intT2)
tempDataSet(12,0) = Application("CP_DataSet_User")(12,intT2)
tempDataSet(13,0) = Application("CP_DataSet_User")(13,intT2)
tempDataSet(14,0) = Application("CP_DataSet_User")(14,intT2)
tempDataSet(15,0) = Application("CP_DataSet_User")(15,intT2)
tempDataSet(16,0) = Application("CP_DataSet_User")(16,intT2)
tempDataSet(17,0) = Application("CP_DataSet_User")(17,intT2)
tempDataSet(18,0) = Application("CP_DataSet_User")(18,intT2)
tempDataSet(19,0) = Application("CP_DataSet_User")(19,intT2)
tempDataSet(20,0) = Application("CP_DataSet_User")(20,intT2)
tempDataSet(21,0) = Application("CP_DataSet_User")(21,intT2)
Exit For
End If
Next
End If
CachePage_GetUser_From_User = tempDataSet
'Time2 = Timer
'Time3 = (Time2-Time1)*1000
'Response.Write "Time3=" & Time3
End Function

说明:这段代码在执行的时候,随着Application("CP_DataSet_User")中的数据量越大,它所耗费的计算时间就越长,直到无法忍受。。。请问这段代码应该如何改良?
  • 打赏
  • 举报
回复
yesir_xiaoye 2004-05-06
我发现这个函数很耗时间,麻烦帮我看看有何办法可以改良这个函数或采用别的解决办法,代码如下:


'获得某个用户名为strUserName的用户信息数据集
Function CachePage_GetUser_From_User(strUserName)
'Dim Time1,Time2,Time3
'Time1 = Timer
Dim tempDataSet(22,1)
If Not IsArray(Application("CP_DataSet_User")) Then
tempDataSet(0,0) = "0"
Else
Dim intT1,intT2
intT2 = 0
intT1 = 0
For intT2 = 0 To UBound(Application("CP_DataSet_User"),2)
If CStr(Application("CP_DataSet_User")(1,intT2)) = CStr(strUserName) Then
tempDataSet(0,0) = Application("CP_DataSet_User")(0,intT2)
tempDataSet(1,0) = Application("CP_DataSet_User")(1,intT2)
tempDataSet(2,0) = Application("CP_DataSet_User")(2,intT2)
tempDataSet(3,0) = Application("CP_DataSet_User")(3,intT2)
tempDataSet(4,0) = Application("CP_DataSet_User")(4,intT2)
tempDataSet(5,0) = Application("CP_DataSet_User")(5,intT2)
tempDataSet(6,0) = Application("CP_DataSet_User")(6,intT2)
tempDataSet(7,0) = Application("CP_DataSet_User")(7,intT2)
tempDataSet(8,0) = Application("CP_DataSet_User")(8,intT2)
tempDataSet(9,0) = Application("CP_DataSet_User")(9,intT2)
tempDataSet(10,0) = Application("CP_DataSet_User")(10,intT2)
tempDataSet(11,0) = Application("CP_DataSet_User")(11,intT2)
tempDataSet(12,0) = Application("CP_DataSet_User")(12,intT2)
tempDataSet(13,0) = Application("CP_DataSet_User")(13,intT2)
tempDataSet(14,0) = Application("CP_DataSet_User")(14,intT2)
tempDataSet(15,0) = Application("CP_DataSet_User")(15,intT2)
tempDataSet(16,0) = Application("CP_DataSet_User")(16,intT2)
tempDataSet(17,0) = Application("CP_DataSet_User")(17,intT2)
tempDataSet(18,0) = Application("CP_DataSet_User")(18,intT2)
tempDataSet(19,0) = Application("CP_DataSet_User")(19,intT2)
tempDataSet(20,0) = Application("CP_DataSet_User")(20,intT2)
tempDataSet(21,0) = Application("CP_DataSet_User")(21,intT2)
Exit For
End If
Next
End If
CachePage_GetUser_From_User = tempDataSet
'Time2 = Timer
'Time3 = (Time2-Time1)*1000
'Response.Write "Time3=" & Time3
End Function

  • 打赏
  • 举报
回复
baggio785 2004-05-06
那重新赋值阿?
检查一下你的代码
看看是否还可以再优化
  • 打赏
  • 举报
回复
yesir_xiaoye 2004-05-06
如果我不保存在application中,而使用const来定义,那么我这些数据如果是要求动态变化的该怎么办呢?
  • 打赏
  • 举报
回复
yesir_xiaoye 2004-05-06
恩。。我的问题可能出在我使用了很多数组来保存这些数据和从这些数组中过滤数据。。。你说可能是这个原因么?
  • 打赏
  • 举报
回复
baggio785 2004-05-06
速度慢和很多因素有关的
比如服务器的带宽
单单讲代码的原因,建议不要用application,系统数据可以用const定义阿
论坛数据量大的话,尽量用存储过程(如果是mssql的话)
服务器如果不能控制的话,尽量从代码方面查找原因
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-05-06 01:41
社区公告
暂无公告