asp 与.net的性能比较

通过对比ASP与ASP.NET在相同运算任务下的执行时间,揭示了ASP.NET在使用显式类型声明时的性能优势,并强调了在.NET编程中避免使用object类型的重要性。

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

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

asp.net比asp的速度要快,这是共识,但是,下面的试验结果却出乎我们的意料:

asp代码: 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Untitled Document</title>
</head>
<body >
<%
Dim i
        i 
= Timer * 1000

        
Dim j
        
Dim k
        
Dim l
        k 
= 0
        
For j = 0 To 500
            l 
= 0
            
For k = 0 To 5000
                l 
= l + k
            
Next
        
Next
        Response.Write(k)
        Response.Write(
"<br>")
        i 
= (Timer * 1000- i
        Response.Write(i)
%
>


</body>
</html>

这段代码运行结果为;

5001

1424

下面是asp.net的代码:

 

Partial Class test
    
Inherits System.Web.UI.Page

    
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load
        
Dim i As Integer
        i 
= Timer * 1000

        
Dim j
        
Dim k
        
Dim l
        k 
= 0
        
For j = 0 To 500
            l 
= 0
            
For k = 0 To 5000
                l 
= l + k
            
Next
        
Next
        Response.Write(k)
        Response.Write(
"<br>")
        i 
= (Timer * 1000- i
        Response.Write(i)

    
End Sub


    
End Class



test.aspx文件只有一行:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>

 

这段程序和asp的程序几乎一模一样,执行结果如下:

5001
1922

也就是说,asp用了1.4秒,而asp.net却用了1.9秒,asp反而比asp.net速度快。这是怎么回事呢?

我们再把asp.net的代码做一点小小的修改,修改如下:

 

Partial Class test
    
Inherits System.Web.UI.Page

    
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load
        
Dim i As Integer
        i 
= Timer * 1000

        
Dim j As Integer
        
Dim k As Integer
        
Dim l As Integer
        k 
= 0
        
For j = 0 To 500
            l 
= 0
            
For k = 0 To 5000
                l 
= l + k
            
Next
        
Next
        Response.Write(k)
        Response.Write(
"<br>")
        i 
= (Timer * 1000- i
        Response.Write(i)

    
End Sub


    
End Class



 

这段代码和前面的代码的区别就是,显式定义了变量的类型,看看运行结果:

5001

0

这次,asp.net在速度上取得了明显的优势。

再把j的范围扩大到5000,得到的结果:

5001

47

速度仍然很快。

这个试验体现了asp和asp.net的本质区别。

asp使用的是脚本语言,是解释执行的。而且asp的数据类型是在运行程序时才确定的,也就是说,我们无法使用:

dim a as integer

这样的方法来声明一个变量的类型。在变量定义的时候,是作为一个object型的变量出现的。

而asp.net使用的语言是编译性的语言,可以选用c#,也可选用vb。在这个试验中我们选用的是vb。

在asp.net的第一段代码中,我们定义了变量,但是没有说明变量的类型,这时,编译器就把这个变量当作object类型,这就造成了第一段代码执行非常缓慢,甚至比asp的代码还慢。

第二段代码我们在定义变量的同时说明了变量的类型,这时编译器就对程序按照声明的类型进行优化,速度提升非常明显。

由此,可以得到结论,在使用.net编程的时候,尽量避免使用object类型,这样可以大大提高程序的效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值