如何实现Asp应用程序性能的最优化
ASP译码问题:
尽可能在客户端确认用户输入来减少HTTP来回请求的数量。如果浏览器有支持JavaScript或其它脚本的能力,使用它们的力量以释放更多的服务器资源。
下面的VBScript运行于客户端浏览器,在提交到你的服务器之前,用来验证用户信息:
<SCRIPT LANGUAGE="VBScript">
<!--
Sub btnEnter_OnClick
Dim TheForm
Set TheForm = Document.MyForm
If IsNumeric(TheForm.Age.Value) Then
TheForm.submit
Else
Msgbox "Please enter a numerical age."
End if
End Sub
//-->
</SCRIPT>
<FORMmethod="POST" name=MyFormaction="myfile.asp">? Name: <INPUT typr="text" name="Name">
Age: <INPUT type="text" name="Age">
<INPUT type="button" name="btnEnter"value="Enter">
</FORM>
使用局部变量,避免使用全局变量。局部变量比全局变量更快地被Asp 脚本引擎存取,因为不需搜索整个名称域。避免改变数组定义。在第一次初始化的时候就简单分配足够的大小效率更高。在这种情况下,你可能会浪费一些内存,但你获得了速度的优势。在服务器负载重的时候这个技术是显然易见有效的。
如果你需要引用不一定要用到的对象,那么最好使用<OBJECT>标记而不是用 Server.CreateObject方法。使用Server.CreateObject引起对象立即被建立,反之,<OBJECT>标记则不会这样立即建立对象如果使用<object>定义后不使用该对象,你不会浪费资源。
例如:下面的例子是一个使用<OBJECT>标记建立一个application-scope广告轮 Ad Rotator对象实例:
<OBJECT runat=server scope=Application id=MyAds progid="MSWC.AdRotator"></OBJECT>
在存储该Ad Rotator对象进Application后,你可以在任何程序的页面中用下面的语法访问该对象
<%=MyAds.GetAdvertisement("CustomerAds.txt") %>
打开'Option Explicit'开关。在VB和VBScript 中,你可以在没有显式声明的情况下使用变量。但打开这个选项可以鉴别用定义变量,这样可以很好地书写变量,并能帮助提高性能。未定义的局部变量会变慢,因为在建立它之前,名称空间必须被搜遍后才知道变量是否存在。摆脱它,使每个变量清楚地定义(先定义后使用)。
这是一个好习惯,it may trap typos, 这样更快。
除非你真正需要使用,否而不要使用Server.MapPath方法。如果你知道真实路径就使用真实路径。使用MapPath需要IIS找回现时服务器路径,这意味着得向服务器发一个特殊的请求,也就意味着降低了性能。另一个方法是将路径存放到局部变量中,在需要的时候使用,这样就不需要服务器多次查找。
检查你自己是怎么做的
你可以通过工具来测量你的系统性能,比如系统性能监视器,NetMon和PerfMon。测试web性能可以用WCAT (Web Capacity Analysis Tool)。使用WCAT,你可以测试你的IIS服务器和网络配置响应各种各样的客户请求,数据或HTML页面的能力。这些测试结果能够被用来作为优化你的服务器和网络配置的指导。WCAT是专门设计用来估计Windows 2000中的因特网服务(或Windows NT)和IIS 能响应的客户工作量
(仿真)。为了得到更多的信息,请参阅IIS Resource Kit(资源工具包)。那里也有冗长的WCAT用户指南在MSDN在线Web sorkshop站点里面有一个下载链接。如果你认真对待你的Asp 性能的话,务必取得该工具。
力求最优化应用程序性能,你的web 应用程序会运行更加顺畅。如果不是真正需要,就不要影响服务器的性能。
摘要:上面介绍了有关ASP性能的资料,有很多因素影响Asp的性能,这里只讨论了其中的一部分。作为最终的想法,不要认为你能够处理好所有的因素,你的ASP 性能还是有必要提高的。你发布的每个应用程序必须个别进行考虑,所有以上的技巧并不是适合每个Asp程序。