天津孵化基地:asp 与 asp.net 的页面访问效率

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 07:58:34
各位大侠,我用asp和asp.net各编写了一个功能相同的程序,在相同的数据库情况下,两个程序都对数据库进行读取和显示操作,在显示内容一致的情况下,我使用wast(Web Application Stress Tool Version:1.1.293.1)对两个程序测试,结果发现如下:

asp.net

Run length : 00:03:30

Number of test clients: 1

Number of hits: 106
Requests per Second: 0.59

Socket Statistics
-----------------------------------------------------------------
Socket Connects: 106
Total Bytes Sent (in KB): 20.39
Bytes Sent Rate (in KB/s): 0.11
Total Bytes Recv (in KB): 2838.76
Bytes Recv Rate (in KB/s): 15.77

asp:

Run length: 00:03:30

Notes
-----------------------------------------------------------------

Number of test clients: 1

Number of hits: 797
Requests per Second: 4.43

Socket Statistics
-----------------------------------------------------------------
Socket Connects: 797
Total Bytes Sent (in KB): 160.38
Bytes Sent Rate (in KB/s): 0.89
Total Bytes Recv (in KB): 3082.69
Bytes Recv Rate (in KB/s): 17.13

从结果显示,是不是asp测试的结果要好D呢?为什么呢?我测试的环境都是一致的(本地测试),而且设置也一样.

问题:请问,不是说asp.net的效率比asp更高吗?如果进行页面回访哪个消耗更多资源呢?
我测试的环境是IIS5.1 + XP (SP2) + ACCESS2000 asp和asp.net两者都使用oledb数据库连接方式,输出的数据是一样的。补充,asp.net的文件没有被预编译。
嗯,首先很感谢两位的意见,但是我觉得你们的回复不够准确,因为你们都没有就上面的报告结果作出分析。我今天又把程序上传到服务器测试,你们猜猜结果吧。

ASP.NET虽然是从ASP上发展过来的,

但是,ASP.NET已经发生了脱胎换骨的变化。

所以,你完全可以把它们当成两种不同的语言。

至于学习哪一个,我认为:
如果一起没有接触过这类语言的话,应该直接学习ASP.NET。
ASP.NET无论在使用的方便程度上,以及效率和安全性上都优于ASP。

楼上怎么看出来asp要好一些的..
asp.net开始第一次访问要先编译的..
如果编译过之后速度肯定要快一些

这样的测试是很难说清楚两者的区别的...

例程1:ASPX页面示例

<!--File:test.aspx-->

<%@ Page language=’C#’ %>

<script runat=server>

int Add(int x, int y)

{

return x+y;

}

</script>

<html>

<body>

<table border=1>

<tr>

<td>两数之和为:</td><td><%=Add(2,3)%></td>

</tr>

</table>

</body>

</html>

例程2:ASP页面示例

<!--File:test.asp-->

<%@ language=Jscript%>

<script language=’JScript’ runat=server>

function Add(x,y)

{

return x+y;

}

</script>

<html>

<body>

<table border=1>

<tr>

<td>两数之和为:</td><td><%=Add(2,3)%></td>

</tr>

</table>

</body>

</html>

以上两个例程的<html></html>里的代码是相同的,不同的是 <%%>声明使用的语言。两段代码都是在服务器端运行,但是,当访问这两个文件时,其背后所发生的事情却截然不同。我们先来分析test.asp文件的运行机制,当执行test.asp文件时,服务器对网页中的文本要进行线性解析,提取所有不是服务器端脚本的内容并作为响应返回,而网页中的服务器端脚本(我们在test.asp文件的脚本中加入了runat=server属性)首先要通过Jscript解释器来解析执行,执行结果作为响应返回。所以,.ASP文件的运行机制在几个方面影响了网页生成(也就是我们平时所说的程序运行)速度变慢。影响.ASP网页效率的几个方面是:首先,随机解释服务器端脚本比在服务器上执行预编译的代码效率更低,因此,要对ASP应用程序进行优化,比较通用的方法就是将大量的服务器端脚本移入预编译的COM组件中,这样就可以有效的提高网页的响应速度;第一的方面是,由于要不断地调用解释器,混合使用静态的HTML和服务器端求值语句脚本块比只用一个服务器端脚本块的效率更低,因此,为了提高应用程序的执行效率,有些ASP开发人员通常使用Response.Write()调用取代静态的HTML元素。最终导致了一个ASP页面上使用多种脚本语言来编写从而大大降低了应用程序的执行效率。现在,我们再来分析一下test.aspx文件的运行机制,在该例中使用c#语言来编写的脚本,所以在服务器端CLR使用相应的C#编译器把这些代码编译成一种叫做IL汇编语言并保存到程序集中。使用CLR,无论你使用何种语言(C#、VB.NET、Jscript 等)编写的脚本,最终都被编译成IL汇编语言。程序集的生成过程如下图所示:

由上图可以看出,程序集中既包括服务器端代码又包括静态HTML语句,因此,只要第一次访问了某个.ASPX页面,以后生成该页面时只需执行已编译好的代码即可。就是ASP.NET网页最终都被编译成.NET类(.NET框架中组件也叫做类),所以,在一个.aspx文件中不可能使用多种服务器端语言,这样就解决了传统的ASP脚本模型的所有有关效率低的问题。所以说,ASP.NET是ASP的升级版本。

与解释模型相比,使用编译模型还有其他方面的好处:1、在性能方面编译模型优于解释模型。因为,编译器将网页编译成类(组件),这样就可以用桌面应用程序或组件开发者使用的同样的调试工具进行调试。2、便于应用程序在编译时可以发现错误,这样就可以使应用程序的健壮性大大增强。3、.NET应用程序开发者可以使用的所有工具,.aspx开发者同样可以使用。总而言之,从传统的ASP过度到ASP.NET,是在程序的性能、速度等方面的革命性的改进

我很想知道你第二次试过的结果,告诉我行吗,我现在也在学这个,很想知道结果的
QQ:38121913