当前位置: 网学 > 编程文档 > ASP > 正文

如何增强ASP程序性能(二)

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
大规模在Windows 2000/IIS 5.0上提高了脚本与ADO的性能,由此,随着IIS5.0版本的引进,减少了编译代码的性能优势。

技巧8:使用Option Explicit

  要在ASP文件中使用Option Explicit定义,并且放置到ASP文件的头部,从而强迫开发者在使用前声明所有的变量。许多程序员都认为这在应用程序调试时非常有用,因为它避免了产生错误类型变量以及偶然创建新变量的可能。

也许更重要的是,声明的变量要大大快于非声明变量。

技巧9:拷贝经常使用的数据到脚本变量中

  在ASP中存取COM对象时,应该拷贝经常使用的对象数据到脚本变量中,这样就减少了对COM对象的方法调用。这些调用要比存取脚本变量相对来说费时费力。当存取Collection和Dictionary对象时,使用这项技巧也减少了昂贵的查找操作。

  通常,如果要不止一次地存取对象数据,就应将数据放入脚本变量中,对象数据主要也就是Request变量(表单和查询字符串变量)。比如,站点要传递一个叫做UserID的查询字符串变量,假设它将在一个特殊页面被引用12次,那么不需要调用Request(“UserID”)12次,只要在ASP页面的头部分配给UserID一个变量,然后在页面中使用它,这样做就节省了11次COM方法的调用。

  实际中,存取COM属性或方法是很昂贵的,下面的例子展示了通用代码:

Foo.bar.blah.baz = Foo.bar.blah.qaz(1)
If Foo.bar.blah.zaq = Foo.bar.blah.abc Then ''

上面的代码执行后,发生以下事情:

1、变量Foo被当作全局对象
2、变量bar被当作Foo的一员
3、变量blah被当作Foo.bar的一员
4、变量qaz被当作Foo.bar.blah的一员
5、调用Foo.bar.blah.quaz(1)
6、再执行步骤1到3分解baz
7、分解baz做为Foo.bar.blah的一员
8、再执行步骤1到3分解zaq
9、再执行步骤1到3一次分解abc

如上所示,这非常没有效率并且很慢。更快的方法是用VBScript编写代码,如下:

Set myobj = Foo.bar.blah '' do the resolution of blah ONCE
Myobj.baz = myobj.qaz(1)
If Myobj.zaq = Myobj.abc Then ''

如果使用VBScript 5.0或者更高版本,可以用With语句编写:


With Foo.bar.blah
.baz = .qaz(1)
If .zaq = .abc Then ''

End With


注意:这个技巧也可以应用在VB编程中。

技巧10:避免再定义数组

  争取不要再定义数组。考虑到性能问题,如果机器的物理内存大小不够,最好按最差情况或者最佳情况设置数组的初始尺寸,需要时再重新定义。

下面的代码展示了Dim和Redim的使用:

<%
Dim MyArray()
Redim MyArray(2)
MyArray(0) = "hello"
MyArray(1) = "good-bye"
MyArray(2) = "farewell"

'' some other code where you end up needing more space happens, then
Redim Preserve MyArray(5)
MyArray(3) = "more stuff"
MyArray(4) = "even more stuff"
MyArray(5) = "yet more stuff"
%>

  简单地定义数组初始尺寸为合适的大小是非常好的,而不要用Redim加大数组。这么做也许浪费了一些内存(如果没有完全地使用空间),但是赢得了速度。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号