今题博客(Blog)      首页 | 招聘 | 简历 | 出售/市场 | 房屋租售 | 论坛 | 博客 | 交友 | 群组 | 小说 | 收藏 | 推荐 | 复制
blue的天空--asp.net 测试报告(一)
blue的天空
http://blog.jinti.com/happybaby2000  [复制] [收藏]
今天很开心
加为好友  个人主页  博客  相册  工作 学习 生活 文学 
     blue 发表于 2007-4-18 16:15:00
asp和asp.net对比测试报告  
   
  一、测试环境  
   
  cpu   :奔2赛扬366  
  内存:256M   SD  
  windows2000   sp2  
  IIS   5  
  Microsoft   .NET   Framework  
  IIS打开页面缓存  
  IE6.0关闭了页面缓存(设置为:每次访问此页时检查)  
  asp.net测试文件均为非第一次运行  
   
  二、测试项目  
   
  1、循环执行效率  
  从0连续加1共5千万次所花费的时间  
   
  (1)   asp.net  
  代码:  
  <%  
  dim   x,y   as   integer  
  dim   time1,time2  
  y=0  
  time1=timer()  
  For   x=1   to   5000000  
  y=y+1  
  Next  
  time2=timer()  
  response.Write   ("注意:小数点前面是秒,后面是毫秒<br>从0连续加1共5千万次<br>运算结果:"   &   y   &   "<br>循环开始:"   &   time1   &   "<br>循环结束:"   &   time2   &   "<br>用时:"   &   time2-time1)  
  %>  
  结果:  
  注意:小数点前面是秒,后面是毫秒  
  从0连续加1共5千万次  
  运算结果:5000000  
  循环开始:79879.7221632  
  循环结束:79879.8223072  
  用时:0.100143999996362  
   
  (2)asp  
  <%  
  dim   x,y  
  dim   time1,time2  
  y=0  
  time1=timer()  
  For   x=1   to   5000000  
  y=y+1  
  Next  
  time2=timer()  
  response.Write   ("注意:小数点前面是秒,后面是毫秒<br>从0连续加1共5千万次<br>运算结果:"   &   y   &   "<br>循环开始:"   &   time1   &   "<br>循环结束:"   &   time2   &   "<br>用时:"   &   time2-time1)  
  %>  
  结果:  
  注意:小数点前面是秒,后面是毫秒  
  从0连续加1共5千万次  
  运算结果:5000000  
  循环开始:79946.55  
  循环结束:79959.79  
  用时:13.24219  
   
  2、数据库访问(12096条记录,Access数据库)  
  (1)ASP.NET环境下用Adodb(对asp.net环境测试代码做了所需的最低程度的更改)  
  代码:  
  <%@Page   aspcompat=true   Language   =   VB%><%  
  dim   oconn,rs,sql,time1,time2  
  time1=timer()  
  oconn=Server.CreateObject("ADODB.Connection")  
  oConn.Open   ("DRIVER={Microsoft   Access   Driver   (*.mdb)};DBQ="   &   server.mappath("data.mdb"))  
  rs=Server.CreateObject("ADODB.Recordset")  
  sql="select   *   from   访客留言板"  
  rs.open(sql,oconn,1,1)  
  do   while   not   rs.eof  
  response.write   (rs("留言者").value)  
  rs.movenext  
  loop  
  rs.close  
  rs=nothing  
  time2=timer()  
  response.Write   ("注意:小数点前面是秒,后面是毫秒<br>从数据库返回12096条记录<br>循环开始:"   &   time1   &   "<br>循环结束:"   &   time2   &   "<br>用时:"   &   time2-time1)  
  %>  
  结果:  
  注意:小数点前面是秒,后面是毫秒  
  从数据库返回12096条记录  
  循环开始:81230.4644352  
  循环结束:81237.244184  
  用时:6.77974879999238  
   
   
   
  (2)asp用Adodb  
  代码:  
  <%option   explicit  
  dim   oconn,rs,sql,time1,time2  
  time1=timer()  
  set   oconn=Server.CreateObject("ADODB.Connection")  
  oConn.Open   "DRIVER={Microsoft   Access   Driver   (*.mdb)};DBQ="   &   server.mappath("data.mdb")  
  set   rs=Server.CreateObject("ADODB.Recordset")  
  sql="select   *   from   访客留言板"  
  rs.open   sql,oconn,1,1  
  do   while   not   rs.eof  
  response.write   rs("留言者")  
  rs.movenext  
  loop  
  rs.close  
  set   rs=nothing  
  time2=timer()  
  response.Write   ("注意:小数点前面是秒,后面是毫秒<br>从数据库返回12096条记录<br>循环开始:"   &   time1   &   "<br>循环结束:"   &   time2   &   "<br>用时:"   &   time2-time1)  
  %>  
  结果:  
  前面是秒,后面是毫秒  
  从数据库返回12096条记录  
  循环开始:80794.82  
  循环结束:80798.02  
  用时:3.195313  
   
  (3)asp.net使用   ADO.NET。这些代码生成的输出等效于前面示例的输出,而且已被修改以符合   ASP.NET   代码块约定  
  代码:  
  <%@   Page   Language="VB"   ContentType="text/html"   ResponseEncoding="gb2312"   %>  
  <%@   Import   Namespace="system.data"   %><%@   Import   Namespace="system.data.oledb"   %>  
  <%dim   time1,time2  
  time1=timer()  
  dim   connstring   as   string="provider=microsoft.jet.oledb.4.0;data   source="   &   server.mappath("data.mdb")  
  dim   sql   as   string="select   *   from   访客留言板   order   by   留言日期   desc"  
  dim   objcmd   as   new   oledbdataadapter(sql,connstring)  
  '创建dataset对象  
  dim   rs   as   new   dataset()  
  objcmd.fill(rs,"访客留言板")  
  dim   temptable   as   datatable=rs.tables("访客留言板")  
  dim   i   as   integer  
  For   i=0   to   temptable.rows.count-1  
  response.Write   (temptable.rows(i).item("留言者"))  
  next  
  time2=timer()  
  response.Write   ("注意:小数点前面是秒,后面是毫秒<br>从数据库返回12096条记录<br>循环开始:"   &   time1   &   "<br>循环结束:"   &   time2   &   "<br>用时:"   &   time2-time1)  
  %>  
  结果:  
  注意:小数点前面是秒,后面是毫秒  
  从数据库返回12096条记录  
  循环开始:82160.8823104  
  循环结束:82163.1155216  
  用时:2.23321120000037  
   
   
  三、测试结果分析  
   
  1、循环执行效率  
  asp用时:13.24219  
  asp.net用时:0.100143999996362  
  值得注意的是,在asp.net测试中,当我们取消对x,y变量类型的定义integer时,即由  
  dim   x,y   as   integer  
  变为  
  dim   x,y  
  时  
  此时的测试结果为:  
  用时:13.6996991999913  
  比asp环境用时更多!  
  显然,显式声明变量类型大大改善了应用程序的执行效率。如果仅仅想把asp的文件简单的更改为aspx扩展名,性能并不能得到提高。只有真正时用了asp.net的规范,才是解决之道。  
   
   
  2、数据库记录访问测试  
   
  (1)ASP.NET环境下用Adodb(对asp.net环境测试代码做了所需的最低程度的更改)  
  用时:6.77974879999238  
  (2)asp用Adodb  
  用时:3.195313  
  (3)asp.net使用   ADO.NET。这些代码生成的输出等效于前面示例的输出,而且已被修改以符合   ASP.NET   代码块约定  
  用时:2.23321120000037  
   
  从结果不难看出,.net环境下使用ado.net访问数据库效率得到非常大的提高,如果访问更多记录的数据库,相信得到的性能改善是非常明显的。  
  在现阶段想把应用程序通过简单的更改使之运行在.net环境下(aspx)得到的结果是得不偿失的。   
   

阅读全文(210) 

发表评论:
标题:
昵 称:
验证码:  验证码,看不清楚?请点击刷新验证码  如看不清楚,点此更换验证码
使用条款 | 联系今题 | 付款指南| 关于今题网 | 建议与批评 | 使用帮助 上海找男友 上海找女友
Copyright © 2004-2007 www.Jinti.com All Rights Reserved
版权所有 今题网     沪ICP备05013192