一直以来对asp的程序编写都比较随意,也没有太多考虑运行效率的问题。asp对语法是相当宽容的,容错性很高,它不需要定义变量便可直接使用,变量名不需要区分大小写字母,asp的文件名也同样不像jsp那样对字母大小写是敏感的
因此,在我接触那么多种语言当中,asp是最不严格的一种,是对程序员要求最低的一种。
昨天测试了asp.net、php和asp的运行速度比较,今天又来冲动,想看看定义变量与不定义变量对asp运行效率的影响有多大,结果令人惊讶,asp程序定义变量比不定义变量速度快一倍!
测试程序还是昨天那个,运行一千万次for循环,获得执行时间。
1、程序没有定义变量(dim i) 复制代码代码如下:
<%
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "页面执行时间:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
2、程序定义了变量(dim i) 复制代码代码如下:
<%
dim i
dim startime
startime=timer()
for i = 1 to 10000000
next
dim endtime
endtime=timer()
response.Write "页面执行时间:" & FormatNumber((endtime-startime)*1000,3) & "毫秒"
%>
程序各执行5次(第一次执行除外),然后取平均值。如下为测试结果:
定义变量 | 执行时间 | 平均时间 |
否 | 1890ms | 1859ms | 1844ms | 1875ms | 1859ms | 1865ms |
是 | 890ms | 890ms | 984ms | 875ms | 890ms | 905ms |
从以上测试结果看出,定义变量比不定义变量,asp的执行速度快了一倍。
至于为什么会这样,本人也没有更进一步深入研究了。不过通过这个实例,让我确实感受到规范编程才能让程序运行得更高效。对于不规范的编程,语言本身虽然具有容错性,但其分析过程是需要时间为代价的。当然了,对于一个简单的程序来说,也许规范与不规范它们所耗时间的差别是微乎其微的,但是如果你开发的系统比较大,页面多,函数调用也多,那么规范与不规范它们所耗时间的差别就会凸显出来了,少则1、2倍,多则几十倍都不足奇。