首先,哪个因素可能影响Asp的性能?很不幸,有很多因素?下面这些只是其中的一部分:
可用带宽服务器上的处理器和其它硬件的速度在服务器上运行的其它程序(比如象那些OpenGL屏幕保护程序!)数据库连接模式,连接池,数据库系统本身(比如Oracle优于Sql Server,Sql server优于Access)所使用的语言存储过程优于行式Sql语句使用编译组件而不是vb或JavaScript,好的Asp编程经验,比如错误处理等
一些以上的因素可能已经被有IIS 知识经验的开发者普遍留意到了,但其它的可能对于他们来说是十分复杂的问题。
在这篇文章里, 将试着解释所有影响Asp性能的每个因素,让我们看一看那些在我们刮胡子的几毫秒内就能做到的主要事情。
ASP脚本大小
你是脚本页(还有其它页面)是不是比必须的长度要长?这是一开始执行就会降低Asp 性能的东西。
ASP 脚本在用来获取信息和格式化输出的时候是十分有用的,但脚本也是逐行解释执行,所以你的脚本 越长,执行它的时间也就越长。
如果你的脚本很庞大,怎么做才能减少脚本的长度呢?这里有几点建议: 你可以将它们转换成服务器端组件,也就是说,做成VB动态链接库DLL或者通过先进的Windows编程 语言或适当的COM 接口语言将它转换成未编译组件?并且在服务器端注册它们。
有关的快速指南可以在 http://www.webdevelopersjournal.com/articles/activex_for_asp.html找到。
对一个写得好的Activ eX 组件进行编译不但能大幅度提高性能,还可以保护你的软件(脚本),尤其当你将你的Asp站点发布在 第三方主机上的时候。
因为脚本是逐行解释执行的,所以剔除多余的脚本或建立更高效率的脚本能够改进性能。
如果你在 单个Asp 文件中有数百行的代码,可能这样做你能很好地划分使用者,买卖和数据服务。
事实上,如果 你这样做,可能会找出一些冗余的代码:如果你需要输出几个表格,你可以编写一个通用函数来输出一 个表格,只是多次调用它。
在讲述Asp 脚本的大小问题的时候,不得不提及包含文件的大小。
当你使用一个包含文件的时候, 整个包含文件被装入,当包含文件被包含的时候,相当于在Asp 文件本身写下那部分代码。
因此,如果 你在一个冗长的包含文件里定义了很多通用的方法和定义,要明白到在你包含该文件的时候,不管你要 不要用到里面的每个方法和定义,它都是被整个装入的。
ASP 缓存全部的展开代码,这会降低查找效率 在这种情况下,包含文件必须被分割成更小的,模块化的文件。
也要明白到包含文件被服务器视为单独 的页面请求,使用太多的包含文件会影响下载时间。
<!-- #include file="Header.asp" -->
<!-- #include file="Footer.asp" -->
<SCRIPT language="vbscript" runat="server">
Sub Main()WriteHeaderWriteBodyWriteFooterEnd Sub
Sub WriteBody()End Sub
Main ''调用过程Main</SCRIPT>
假如你的脚本冗长的话,请使用Response.IsClientConnected。
这意味着在客户端不再连接到服务器的时候,你的服务器CPU能避免循环等待。
<%''检查客户端是否仍在连接If