ASP程序运行速度测试

本文对ASP程序运行速度进行了多项测试。包括分支条件判断中IF比SELECT慢;SESSION对象换为普通变量速度快约8倍;字符串连接基数越大越慢,汉字比英文快4倍;FOR循环比DOWHILE循环快;定义不同长度SESSION的时间差异等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1程序运行速度试验结果:
21。作相同的分支条件判断:IF比SELECT慢。
3用以下程序测试:
4<%
5dimtttt1,ttt2
6session("ii")=0
7forsn=0to5
8ttt1=now()
9fori=0to300000
10ifsession("ii")=0then
11session("ii")=1
12else
13ifsession("ii")=1then
14session("ii")=2
15else
16ifsession("ii")=2then
17session("ii")=3
18else
19session("ii")=0
20endif
21endif
22endif
23next
24ttt2=now()
25tou=ttt2-ttt1
26Response.Writesn&""&tou*24*60*60&"<br>"
27next
28
29forsn=0to5
30ttt1=now()
31fori=0to300000
32selectcasesession("ii")
33case0
34session("ii")=1
35case1
36session("ii")=2
37case2
38session("ii")=3
39case3
40session("ii")=0
41endselect
42next
43ttt2=now()
44tou=ttt2-ttt1
45Response.Writesn&""&tou*24*60*60&"<br>"
46next
47
48%>
492,如果把上例中的SESSION对象改为用普通的变量存。速度会快差不多8倍
503,进行字符串连接时往中间加入相同多的字符串,基数越大,越慢。
51通过下面的程序测试:
52<%
53dimtttt1,ttt2
54session("ii")=0
55forsn=0to5
56ttt1=now()
57'txt=""
58fori=0to10000
59txt="a"&txt
60next
61ttt2=now()
62tou=ttt2-ttt1
63Response.Writesn&""&tou*24*60*60&"<br>"
64next
65%>
66进行同样长字节的字符连接时,汉字比英文快4倍,通过下面的程序测试
67<%
68
69dimtttt1,ttt2
70forsn=0to5
71ttt1=now()
72txt=""
73fori=0to20000
74txt=""&txt
75next
76ttt2=now()
77tou=ttt2-ttt1
78Response.Writesn&""&tou*24*60*60&"<br>"
79next
80
81txt=""
82forsn=0to5
83ttt1=now()
84txt=""
85fori=0to20000
86txt="aa"&txt
87next
88ttt2=now()
89tou=ttt2-ttt1
90Response.Writesn&""&tou*24*60*60&"<br>"
91next
92
93%>
94用FOR循环比DOWHILE循环要快得多,用下面的程序测试,虽然FOR循环中要多一个变量,
95<%
96dimtttt1,ttt2
97
98forsn=0to5
99ttt1=now()
100i=0
101dowhilei<=100000
102i=i+1
103loop
104ttt2=now()
105tou=ttt2-ttt1
106Response.Writesn&""&tou*24*60*60&"<br>"
107next
108
109forsn=0to5
110ttt1=now()
111ii=0
112fori=0to100000
113ii=ii+1
114next
115ttt2=now()
116tou=ttt2-ttt1
117Response.Writesn&""&tou*24*60*60&"<br>"
118next
119%>
120定义5000个一个字符的SESSION并不比定义5000个有5000个字符串长的SESSION少花很多时间,两者时间差仅为近一倍,用一秒多钟。倒是生成这个5000个字符长的变量花了不少的时间,<%
121dimtttt1,ttt2
122c="a"
123forsn=0to5
124
125session.abandon
126ttt1=now()
127fori=0to5000
128session("s"&i)=c
129next
130ttt2=now()
131tou=ttt2-ttt1
132Response.Writesn&""&tou*24*60*60&":"&session("s"&i-1)&"<br>"
133next
134
135fori=0to5000
136c="a"&c
137next
138
139forsn=0to5
140session.abandon
141ttt1=now()
142fori=0to5000
143session("s"&i)=c
144next
145ttt2=now()
146tou=ttt2-ttt1
147Response.Writesn&""&tou*24*60*60&":"&session("s"&i-1)&"<br>"
148next
149
150
151%>
152
153
154这段程序从SN=3起就很慢,而前面非常快
155<!--#includefile="filetou.asp"-->
156<%
157dimtttt1,ttt2
158forsn=0to5
159ttt1=now()
160fori=1to20
161sql="SELECT名称fromuserwhere名称='阿余'"
162Setrs=Server.CreateObject("ADODB.RecordSet")
163rs.Opensql,conn,1,3
164rs("名称")="阿余"
165rs.update
166rs.close
167next
168ttt2=now()
169tou=ttt2-ttt1
170Response.Writesn&""&tou*24*60*60&":"&session("s"&i-1)&"<br>"
171next
172
173
174%>
175
176
177而这样就快多了。看来建对象很要花些时间,还有,用MOVE0,1和MOVEFIRST相比速度没有什么差别。
178<!--#includefile="filetou.asp"-->
179<%
180sql="SELECT名称fromuserwhere名称='阿余'"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值