立即登录 注册新帐号

http://www.chutianz.com - 楚天站长站

会员投稿 匿名投稿 投稿指南 RSS订阅 楚天站长站推荐:
搜索: 您的位置主页 > 网络编程 > Asp编程 > 阅读资讯:asp 性能测试报告 学习asp朋友需要了解的东西

asp 性能测试报告 学习asp朋友需要了解的东西

2011-10-08 17:04:14 来源:楚天站长站 【 】 点击:我要投稿 发表评论

看了下面的文章,发现作者的测试真的对用asp的朋友很有帮助,不只是asp其它的语言应该也类似。

在服务器上生成动态内容是使用ASP最主要的原因之一,所以我们选择的第一个测试项目是确定把动态内容发送到应答流使用什么方法最好。基本的选择有两种(以及它们的一些变化):使用内嵌ASP标记,使用Response.Write语句。
   为测试这些不同的方法,我们创建了一个简单的ASP页面,页面先定义一些变量然后把它们插入到表格。虽然这个页面很简单,而且没有实际用途,但它足以让我们分离和测试各个问题。
   2.1 使用ASP内嵌标记
   第一个测试是使用ASP的内嵌标记<%= x %>,其中x是一个变量。这是使用最方便的方法,而且它可以让页面的HTML部分变得更容易阅读和维护。
复制代码 代码如下:
<% OPTION EXPLICIT
Dim FirstName
Dim LastName
Dim MiddleInitial
Dim Address
Dim City
Dim State
Dim PhoneNumber
Dim FaxNumber
Dim EMail
Dim BirthDate
FirstName = "John"
MiddleInitial = "Q"
LastName = "Public"
Address = "100 Main Street"
City = "New York"
State = "NY"
PhoneNumber = "1-212-555-1234"
FaxNumber = "1-212-555-1234"
EMail = "[email protected]"
BirthDate = "1/1/1950"
%>
<HTML>
<HEAD>
<TITLE>Response Test</ TITLE>
</HEAD>
<BODY>
<H1>Response Test</H1>
<TABLE>
<tr><td><b>First Name:</b></td><td><%= FirstName %></td></tr>
<tr><td><b>Middle Initial:</b></td><td><%= MiddleInitial %></td></tr>
<tr><td><b>Last Name:</b></td><td><%= LastName %></td></tr>
<tr><td><b>Address:</b></td><td><%= Address %></td></tr>
<tr><td><b>City:</b></td><td><%= City %></td></tr>
<tr><td><b>State:</b></td><td><%= State %></td></tr>
<tr><td><b>Phone Number:</b></td><td><%= PhoneNumber %></td></tr>
<tr><td><b>Fax Number:</b></td><td><%= FaxNumber %></td></tr>
<tr><td><b>EMail:</b></td><td><%= EMail %></td></tr>
<tr><td><b>Birth Date:</b></td><td><%= BirthDate %></td></tr>
</TABLE>
</BODY>
</HTML>

/app1/response1.asp的完整代码
最好记录 = 8.28 毫秒/页


   2.2 使用Response.Write输出每一行HTML代码
   许多优秀的文献指出,应当避免使用前面的内嵌标记方法,因为它导致一个称为“上下文切换”的操作。这个操作发生在Web服务器所处理的代码类型发生变化的时候(从纯HTML的发送到脚本处理,或反过来),这种切换需要一定的时间。许多程序员在了解了这一点之后,他们的第一个反应是将每一行HTML代码都用Response.Write函数来输出:
复制代码 代码如下:
...
Response.Write("<html>")
Response.Write("<head>")
Response.Write(" <title>Response Test</title>")
Response.Write("</head>")
Response.Write("<body>")
Response.Write("<h1>Response Test</h1>")
Response.Write("<table>")
Response.Write("<tr><td><b>First Name:</b></td><td>" & FirstName & "</td></tr>")
Response.Write("<tr><td><b>Middle Initial:</b></td><td>" & MiddleInitial & "</td></tr>")
...

/app1/response2.asp片断
最好记录 = 8.28 毫秒/页
响应时间 = 8.08 毫秒/页
差  额 = -0.20 毫秒 (减少 2.4%)


   和内嵌标记版本相比,我们所看到的性能改善非常小,简直令人惊讶。这或许是因为页面中多出了许多函数调用。不过这种方法还有一个更大的缺点,由于HTML代码嵌入到了函数内,脚本代码变得非常冗长,阅读和维护都不方便。
   2.3 使用封装函数
   Response.Write并不会在文本行的末尾加上CRLF(Carriage Return - Line Feed,回车换行),这是使用上面这种方法最令人失望的地方。尽管已经在服务器端把HTML代码作了很好的格式化,但在浏览器中看到的仍旧只有长长的一行代码。不过失望的不仅是这一个问题,人们很快就发现不存在能够自动添加CRLF的Response.WriteLn函数。一个很自然的反应就是创建Response.Write的封装函数,在每行的后面加上CRLF:
...
writeCR("<tr><td><b>First Name:</b></td><td>" & FirstName & "</td></tr>")
...
SUB writeCR(str)
Response.Write(str & vbCRLF)

感谢 靓哥 的投稿 本文仅代表作者观点,与楚天站长站立场无关。

分享到:

共7页: 上一页1234567下一页

数据统计中!!

tags:asp,需要,了解,东西,朋友,学习,性能,测试,报告,

 责任编辑:靓哥
  • 评论总数: [ 查看全部 ] 网友评论