欢迎光临
我们一直在努力

程序运行速度测试-ASP教程,脚本编码

建站超值云服务器,限时71元/月

程序运行速度试验结果:
1。作相同的分支条件判断:if  比  select慢。
用以下程序测试:
<%
dim tttt1,ttt2
session(“ii”)=0
for sn=0 to 5
ttt1=now()
for i=0 to 300000
   if session(“ii”)=0 then
      session(“ii”)=1
   else
     if session(“ii”)=1 then
      session(“ii”)=2
     else
       if session(“ii”)=2 then
          session(“ii”)=3
        else
           session(“ii”)=0
         end if
     end if
   end if
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next

for sn=0 to 5
ttt1=now()
for i=0 to 300000
   select case session(“ii”)
      case 0
         session(“ii”)=1
      case 1
         session(“ii”)=2
       case 2
         session(“ii”)=3
       case 3
         session(“ii”)=0
   end select
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next

%>
2, 如果把上例中的session对象改为用普通的变量存。速度会快差不多8倍
3,进行字符串连接时往中间加入相同多的字符串,基数越大,越慢。
通过下面的程序测试:
<%
dim tttt1,ttt2
session(“ii”)=0
for sn=0 to 5
ttt1=now()
  txt=””
   for i=0 to 10000
       txt=”a”&txt
   next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next
%>
进行同样长字节的字符连接时,汉字比英文快4倍,通过下面的程序测试
<%

dim tttt1,ttt2
for sn=0 to 5
ttt1=now()
  txt=””
   for i=0 to 20000
          txt=”人”&txt
   next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next

txt=””
for sn=0 to 5
ttt1=now()
  txt=””
   for i=0 to 20000
          txt=”aa”&txt
   next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next

%>
用for 循环比do  while循环要快得多,用下面的程序测试,虽然for循环中要多一个变量,
<%
dim tttt1,ttt2

for sn=0 to 5
ttt1=now()
  i=0
   do while i<=100000
      i=i+1
   loop
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next

for sn=0 to 5
ttt1=now()
   ii=0
   for i=0 to 100000
    ii=ii+1
   next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”<br>”
next
%>
定义5000个一个字符的session并不比定义5000个有5000个字符串长的session少花很多时间,两者时间差仅为近一倍,用一秒多钟。倒是生成这个5000个字符长的变量花了不少的时间,<%
dim tttt1,ttt2
c=”a”
for sn=0 to 5

session.abandon
ttt1=now()
   for i=0 to 5000
       session(“s”&i)=c
    next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”
next

for i=0 to 5000
  c=”a”&c
next

for sn=0 to 5
session.abandon
ttt1=now()
   for i=0 to 5000
       session(“s”&i)=c
    next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”  &session(“s”&i-1)&”<br>”
next

%>

这段程序从sn=3起就很慢,而前面非常快
<!–#include file=”filetou.asp”–>
<%
dim tttt1,ttt2
for sn=0 to 5
ttt1=now()
  for i=1 to  20
   sql =”select 名称  from user where 名称=阿余”
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
   rs(“名称”)=”阿余”
   rs.update
   rs.close
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”
next

%>

而这样就快多了。看来建对象很要花些时间,还有,用move 0,1 和  movefirst 相比速度没有什么差别。
<!–#include file=”filetou.asp”–>
<%
   sql =”select 名称  from user where 名称=阿余”
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
dim tttt1,ttt2
for sn=0 to 5
ttt1=now()
  for i=1 to  700
   rs(“名称”)=”阿余”
   rs.update
   rs.movefirst
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”
next
%>

而这两种方式相比,后者要慢3倍,可能是后者要重新查询,但比前面的用rs建查询后又去改,改了又关,相比,要快了不知多少。
<!–#include file=”filetou.asp”–>
<%
   sql =”select 名称  from user where 名称=阿余”
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
dim tttt1,ttt2

for sn=0 to 5
ttt1=now()
  for i=1 to  700
   rs(“名称”)=”阿余”
   rs.update
   rs.movefirst
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”
next

for sn=0 to 5
ttt1=now()
  for i=1 to  700
     sql=”update user set 名称=阿余  where 名称=阿余”
     conn.execute sql,0,-1
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”
next

%>

新加一万条记录谁快?第一种方法用31秒,后者直到超时仍未完成。不得已,少掉一个0,1000条是,后者慢一半。
<!–#include file=”filetou.asp”–>
<%
   sql =”select 名称  from user where id=0″
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
dim tttt1,ttt2

ttt1=now()
  for i=1 to  10000
   rs.addnew
   rs(“名称”)=”阿余a”
   rs.update
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

ttt1=now()
  for i=1 to  10000
     sql=” insert into  user (名称) values(阿余b)”
     conn.execute sql,0,-1
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

%>

下面的程序结果说明rs新增记录较快,而删除较慢,用conn新增慢,但删除很快。
运行的结果为:
、3.00000007264316:
、7.99999998416752:
、1.99999983888119:
、0:
后来用rs新增记录5000条,并用conn删除这5000条, 结果为:
、17.000000202097:
、1.00000023376197:
程序为:
<!–#include file=”filetou.asp”–>
<%
dim tttt1,ttt2
ttt1=now()
sql =”select 名称  from user where id=0″
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
  for i=1 to  1000
   rs.addnew
   rs(“名称”)=”阿余a”
   rs.update
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

ttt1=now()
  for i=1 to  1000
     sql=” insert into  user (名称) values(阿余b)”
     conn.execute sql,0,-1
next
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

ttt1=now()
   sql =”select  名称 from user where 名称=阿余a”
   set rs=server.createobject(“adodb.recordset”)                        
   rs.open sql,conn,1,3
do while not rs.eof
   rs.delete
   rs.update
   rs.move 0,1
  loop
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

ttt1=now()
   sql =”delete from user  where 名称=阿余b”
    conn.execute sql,0,-1
ttt2=now()
tou=ttt2-ttt1
response.write sn&”、”&tou*24*60*60&”:”&session(“s”&i-1)&”<br>”

%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 程序运行速度测试-ASP教程,脚本编码
分享到: 更多 (0)