写ASP程序已经有6年了,也下载了不少ASP源码,看看别人怎么写,到现在也不敢说自己是个ASP的代码能手,我认为写一个程序,只要逻辑思维清晰,很简单的,但要写好一个程序就不简单了。
这篇文章就想说一个事情.如何提升ASP代码的执行速度.希望对那些做网站的朋友有所帮助,写代码的人一定要养成好的习惯。
第一点:可能基本上会写ASP代码的人都知道,打开记录集对象了,要关闭及连接(Connection)对象:如:rs.close,conn.close,set rs=nothing,set conn.close。
第二点:写ASP代码的离不开数据库,很多人在取数据库是都用select * from....,很多下载的源代码也是这样写,其实这些看似不起眼的地方,却大大降低ASP执行速度。那么我告诉你有多少字段就取多少字段,当然如果你要用全部字段,用*是没多大区别,你怕麻烦呢,还是关心速度呢,就由你决定了。
第三点:能用存储过程的地方尽量用,ACCESS我不太清楚能否用存储过程,但我在操作MSSQL或ORACLE数据库时,基本上都用存储过程,除非遇到复杂的查询,这样有两个好处,因为存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,这样就提高了你的ASP程序运行的速度,不需通过SQL操作一次,编译一次,第二个好处就是写个通用的存储过程,这样可以减少代码量.从数据库角度上讲存储过程的好处这里就不再细说了。
第四点:请使用游标操作数据库,如果你只是对一个表进行读取操作,那么请使用forward-only,read-only游标,因为这种游标读取数据库是最为快速的,尤其是你的读取数据量很大的情况下。
第五点:这个可能很多人不知道,下载的源代码也我也从来没看到过.但是性能却能帮你提升5倍的方法.很多朋友在用ASP取数据库记录时,喜欢这么写rs("username"),rs("addr"),知道速度能快点的朋友可能会这么写rs(1),rs(2),但我告诉你这两种都不是最快的方法,最快应该这么写:
Dim objrs
Set objrs=rs(0)
response.wirte objrs
在取100条记录以上时就会感觉到此种方法的超级优势,不信你试试,当然别忘记set objrs=nothing。
第六点:尽量少用Session对象和Application对象。这2个家伙确实给我们程序带来不少好处,但是又爱有恨,为什么用多了,服务器被他们拖死,所以在这里不能说不要用,只能说合理用。
第七点:用了对象要记得关闭,就象刚才第五点最后的一句话那样。
第八点:要合理的使用Include文件。我看过很多下载下来的源代码,把所有的函数都写到一个文件里,然后用到的地方Include进来,这样做虽然带来了很大的方便,但是在性能上又打了折扣,原因总有吧,是的,你在其他页面包含这个文件的时候,服务器端是要进行预编译的,很可能在一个包含文件里面有上百个函数,而你只是想要使用其中的一个函数,这样就得不偿失了。所以,尽可能的分割你的包含文件成为多个小的包含文件。
第九点:能使用ASP本身提供的函数,就尽量使用。
第十点:动态数组要少用,这东西也是吃内存的大胃王。
第十一点:提前声明变量,没有好习惯的程序员写ASP程序,用什么写什么变量,从没看到dim字眼,我要告诉你,提前声明变量会加快程序的解释执行时间,不声明变量,不但程序难读,整个程序在服务器的执行效率也会打折扣。
第十二点:看到很多下载的代码,喜欢把所有的数据库的增删改都写在一段代码里,这样做的结果会使你的运行速度减慢很多,试想如果1000个人同时打开这个处理页面,那是多么恐怖的事情,我建议你把处理的一件逻辑事件独立写成一个页面,这样做可以降低服务器端解释执行的负担,而且阅读起来也快捷。
原文链接:https://blog.csdn.net/great_domino/article/details/1561965