昨天闲着没事,网上搜索了一些asp应用优化方面的资料,看了几篇,感觉和我最近优化kingcms代码使用的方法基本一样。总结了一下,感觉asp代码优化可以针对如下几点进行处理。
1、 文件长度,asp作为一种逐行解释执行的脚本型开发语言,asp代码文件本身的长度会影响到asp解释执行的效率,尽量缩短文件长度(行数),会显著提高
asp程序性能。当然,asp文件长度并不只是一个文件中代码行数,还包括使用< !-- #include file="Header.asp"
-- >这样的方式引用的asp文件,应用的文件解释执行前会首先包含到执行代码中,所以这里说的asp文件长度包括被引用asp文件的长度。一般开发都
将一些常用函数放到一个asp文件中,然后在需要的asp文件中引用该函数集文件,但这样可能造成代码长度浪费,因为常用函数不是所有的函数都会用到,可
能只用到1个,但是所有函数代码都被包含进来了,加大了文件长度,降低了执行效率。总之,尽量缩短asp代码文件长度。
2、减少asp代码 和html代码的切换,asp文件中,程序代码和html代码常常交叉存在,asp代码都用<% %>这样的符号包起来,如果整个asp文件中过多的出现<%
%>这样的标记,执行的时候解释器就需要在asp和html之间不停切换,造成性能浪费,所以要尽量减少该符号的出现次数。比较有效的方法就是对一
些html输出不是直接将html代码放在<% %>之外,而是用asp的response.write函数输出该html代码。
3、 减少数据库连接和数据库查询次数,对于数据库连接,可以发起一个连接,直到不使用的时候再释放,而不是每次查询都打开关闭一次连接。当然,对于sql
server这样的数据库,ado本身会缓存连接会话,第二次打开时实际上并不是真的的打开,而是恢复上次的连接,但是我还是推荐自己在asp代码中主动
维护一个数据库连接。对于查询次数,当然是越少越好,尽量减少数据从数据库读写的次数,对于常用的内容可以从数据库读取后放到变量里以备后面代码调用。
4、 巧用系统缓存,对于一些常用的数据,可以进行缓存处理,而不是每次都进行运算得到该结果。缓存数据可以根据情况保存到application中,也可以保
存到session中,也可以保存到一个文件里。application是全局的,每个用户都可以访问,而session仅对发起会话的用户有效。缓存处
理对于asp程序来说非常有效,能大大提高页面生成速度,一些常见的bbs,cms应用都使用了缓存机制。
5、变量优化,首先强烈推荐使用Option Explicit打开配置开关,强制所有变量必须显式声明,这样系统就不必在命名空间中查找你调用的变量是否被声明过。另外就是使用局部变量,减少全局变量的使用。
6、 内存释放,这个跟上面说的变量优化有关系。asp使用的是vb脚本语法,对于变量的声明和释放要求并不严格,但是对于高性能的优质代码来说,最好是主动的
声明和释放变量占用的资源,不要总是依赖asp系统本身来自动处理,那样会造成系统资源浪费,最明显的就是内存占用越来越多。例如创建了一个对象, dim
rs : set rs =server.create("adodb.recordset"),在使用完这个数据集后,要首先rs.close关闭数据集,然后set
rs = nothing 释放数据集对象。
7、慎用 Server.MapPath,除非必须,不要使用Server.MapPath!相反,如果知道路径,就使用明确的文字路径来表示。使用
MapPath,将要求IIS去取回当前服务器路径,这意味着对IIS一个特殊的请求,从而降低了程序性能。另外的完成这个工作的方法是在局部变量中保存
路径信息,当需要使用它时,服务器就不用再被过度请求,(这一项是我抄的,哈哈,我没注意过这个)
其它,还有数据库的查询语句的优化,开启asp缓冲,等等一些asp代码性能优化方法。如果做好了这些措施(实际上也不用特别注意,对于一个优秀的程序员来说这些在日常代码编写中会自觉的进行处理的),asp的性能会得到很大提升。