ASP执行效率相关文章大全 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Nov 17

ASP执行效率相关文章大全 不指定

tommyhu , 19:49 , ASP , Comments(2) , Trackbacks(0) , Reads(17242) , Via Original Large | Medium | Small
2010年6月22日更新推荐http://www.tjxf.cn/article/80.htm
1. 不要任意使用“SELECT * ......”请尽量拾取您所需要的那些字段,比如,一个Table中有10个字段,但是您只会用到其中的一个字段 (name),就要使用“select name from yourtable”,而不是用“select * from yourtable”。如果一个table中有50个字段,您需要用到其中的23个字段的时候,大多数程序员就不一定会用“select name,sex,age... from yourtable”测试证明,尽量拾取您所需要的那些字段来使用select语句将会是您的ASP程序至少加快5%左右。
  2. 尽可能使用系统存储过程(针对MS SQL Server)。有的时候完成一个读取操作,使用SQL语句和存储过程同样可以完成,但是使用存储过程将会大大加快完成读取操作的速度,也就提高了您的ASP程序运行的速度。
  3. 注意您的游标使用方法如果您仅仅是对一个table进行读取操作,那么建议您使用forward-only,read-only游标,因为这种游标读取数据库是最为快速的,尤其是在读取数据量很大的情况下。
  4. 不要打开无用的独立记录集。比如在生成一个树型记录集的时候,我们一般不得不打开父记录集以及对应的子记录集,甚至还有孙记录集,其实您可以使用ADO提 供的Data Shaping技术来替代打开多个独立的记录集,那样会加快程序的运行速度。(关于Data Shaping的用法可以参考ADO帮助)
  5. 记着关闭打开的记录集对象以及连接(Connection)对象。有些程序员总是奇怪为何自己的ASP程序刚开始的时候运行速度很快,可是多运行几遍就越 来越慢了呢?甚至出现服务器死机或者频繁宕机的情况。发生这种情况,就很可能是您打开了太多的记录集对象以及连接(Connection)对象而最后却没 有关闭他们引起的。使用如下方法进行关闭:YourRecordSet.closeSet YourRecordSet=Nothing
  Set YourConnection=Nothing
  6. 取得数据库数据的方法。比较您是如何得到记录集的数据的呢?大多数程序员使用YourRecordSet(字段编号),或者 YourRecordSet("字段名称"),其实还有其他的使用方法,现在我们就比较一下吧(100条记录):Rs("字段名称")Rs("字段 名").ValueRs("字段编号")Set方法数据库回应时间2.967秒2.936秒1.650秒0.586秒2.824秒2.914秒1.611 秒0.602秒2.893秒2.943秒1.613秒0.594秒,平均回应时间2.895秒2.931秒1.625秒0.594秒,前三种方法大家都可 以看的明白,第四种方法(Set方法)使用:
  Dim strSQLStrSQL="select name,sex,age from yourtable"
  Dim rs
  Set rs=server.createobject("ADODB.RECORDSET")
  Rs.open strSQL,conn,1,1
  Const fieldsOrder=2
  Dim objOrder
  Set objOrder=rs(fieldsOrder)
  Response.write objOrder  
  
     二. 有关ASP内置对象使用方面的优化方法
  1. 尽量减少Session对象和Application对象。使用虽然ASP中提供的这两个对象对我们的编程提供了很大的帮助,但是,对这两个对象要合理的 使用,不要滥用。因为大量的使用这两个对象将会极大的增大服务器的负担,严重消耗系统资源。也将使您的ASP程序运行慢如老牛。
  2. 要及时的关闭不再使用的对象(尤其是Session和Application)不及时的关闭您所使用的对象会导致系统运行速度变得缓慢。大多数程序员认为 Session和Application可以自动消失,但是系统默认30分钟内访问者如果没有任何操作就自动触发Session_OnEnd和 Application_OnEnd事件,但是大量的访问者频繁的读取服务器,服务器将在很长的一段时间保持那些已经没有用的 Session,Application对象,如果不及时关闭使用完的Session和Application后果将不堪想象了。关闭的方法是:
  Set 对象=Nothing

  三. 合理使用Include文件
  我们这里说的是指用<!--#include file="xxx"--形式包含进来的文件,并且文件内容全是ASP程序,也就是说您将一些公共的函数放到一个文件中,并在其他有可能调用其中函数的页 面包含进来。建议您不要将所有的函数放到一个包含文件中,因为您在其他页面包含这个文件的时候,服务器端是要进行预编译的,很可能在一个包含文件里面有上 百个函数,而您只是想要使用其中的一个函数,这样就严重消耗系统资源。所以,尽可能的分割您的包含文件成为多个小的包含文件。这样也可以提高程序的运行速 度。

  四. 有关VBScript语言方面的优化方法
  1.尽量使用系统函数代替自己编写的函数比如要想分割一个有规律的字符串("sss,ddd,fff,ggg"),就不必自己使用什么Mid(),Instr等等函数来分析了,其实VBScript就提供了一个函数 Split(),这样既省时间,又提高了速度。
  2.减少动态数组的使用
  3.尽可能提前声明变量,提前声明变量会加快程序的解释执行时间。相反,从不声明变量,不但程序难以阅读,整个程序在服务器的执行效率也会大打折扣的。

  五. 其他方面的优化方法
  1. 在ASP文件中尽量使用<%%嵌入到HTML标签中,而不要使用Response.write的方式,比如:  <html><body
    就远远比:<%If ok =1 then %
  Hello! World!
  <%End If%
  </body
  </html>
  就远远比:

<%
  Response.write "<html>"
  Response.write " <body>"
         If ok =1 thenResponse.write "Hello! World!"
         End IfResponse.write " </body>"
  Response.write "</html>"
  %>
  的运行速度要快,尤其是您的ASP文件比较大的情况下。因为,第二种方式增加了服务器端的解释时间,因而也就降低了ASP程序的性能。
  2. 尽量用一个ASP文件完成一个动作很多人喜欢在一个ASP程序中同时完成诸如添加,删除,查找等等多个动作,不要认为这样是有效的利用了文件,相反,这样 做的结果是使得应用程序的运行速度减慢很多。应当将添加,删除,查找等分割成单个的独立的ASP文件来完成。这样使得文件不会过于庞大,降低服务器端解释 执行的负担,并且阅读程序也很快捷。



1.尽量少查询数据库,多使用内存及硬盘里的数据.
2.代码尽量写成块
3.减少<>出现的次数.
4.少用FOR循环
5.少用IF判断
6.使用存储过程,触发器
7.采用模板,将前后台代码分开.
8.再利用REPLACE等将取出的数据对模板中相应的位置进行替换.
Pages: [1] [2] [3] [4] [5] [6]

▲返回顶部
Last modified by tommyhu on2010/06/23 22:26

互联网开发网友 Email Homepage
2010/01/22 23:17
设置ASP缓存的几条重要函数                   • ASP的缓存技术
• 清除Flash缓存的方法 Flash ASP                   • ASP缓存类(ASP缓存技术总结)
• 让asp立即输出缓存(Response.flu...                   • htm,asp,php,jsp不缓存网页的办...
• 几个常用的ASP缓存函数                   • ASP小技巧:禁用html页面的缓存
• ASP的XML缓存类,代替了Applicati...                   • asp利用缓存读取数据--Applicati...
更多>>

http://hi.baidu.com/%CC%C6%D2%E3%D5%DC/blog/item/a41ee08ba99e1bd4fc1f1008.html
互联网开发网友 Email Homepage
2010/01/22 23:16
一、何谓ASP缓存/为什么要缓存
    当你的web站点采用asp技术建立的初期,可能感觉到的是asp动态网页技术带来的便利性,以及随意修改性、自如的http控制。但是,随着访问量的增加,你一定会发现自己的站点访问速度越来越慢,IIS重新启动得越来越频繁。接下来,你一定想优化asp,诸如更换性能更优异的数据库、建立索引、编写存储过程等等。这些措施有些不需要增加成本压力,有些则成本压力很大(譬如丛access到SQL),而且效果还不一定。

    面对web访问压力,我认为最经济的办法是利用缓存优化技术来实现缓解web的服务压力。
Web访问量增加通常意味着以下资源需求的快速增长:
1、 网卡流量增加,需要消耗更多的CPU处理网络流量和网络I/O线程。
2、 需要更频繁的打开/关闭数据库连结(如果使用数据库技术—通常asp都会采用数据库作为数据存储),严重消耗资源的事物数量、以及事务相互竞争资源引起的死锁、会增加网络I/O或者CPU消耗。
3、 如果采用session的话,IIS为了维持状态,会消耗更多内存,而内存消耗可能会引发物理内存不够,引起物理内存同辅存间的频繁交换,从而引起代码执行的停顿,web响应阻滞。
4、 由于访问的不到及时响应,会引起网页访问故障,导致用户刷新,从而加剧CPU、内存等资源需求。
    实际上,考虑通常的web应用程序,很多时候的动态代码执行是不必要的。

    二、asp缓存的分类
    擅自总结,asp的缓存可以分为两类:

    1、 文件缓存
    所谓文件缓存,就是根据逻辑判断,一段时间内某个asp的特定执行将不会有很大的变动,因而将内容以静态html的形式存放,然后以web的重定向技术让客户端访问静态文件,以达到减少CPU、数据库资源等的需求。这样的应用很多,譬如很多论坛就是在回复贴子的时候将整个贴子重新生成一个静态文件,然后进行重定向的,例如 donews.com的论坛。该成静态还有一个副作用(好处)--可以很容易被google等搜索引擎收录。一些所谓新闻发布系统的都采用了此技术。

    2、 文件片断缓存
    所谓文件缓存,也是基于逻辑判断,某部分数据(通常是需要消耗资源的大容量数据库查询取得)在一定时间内不会改变,所以我们可以将这些数据利用文件的形式进行存储,当需要时候,可以通过读取文件来获取数据,避免增加数据库的负担。例如,我们通常将一些数据以xml格式存储,然后利用xslt技术实现显示(xml处理通常需要大量CPU资源,所以通常是IE直接读取xml到客户端在客户的CPU上进行处理)。CSDN的论坛就是这样处理的。
网页教学网


    3、 主存缓存
除此之外,还可以考虑在内存中处理缓存,将需要及时响应的内容存储在内存中,一旦访问需求,立即从快速的贮存中输送出去。如果极大量的访问需求集中在几个少量的页面或者主存足够多,我想采用主存缓存一定可以大幅度提高web访问性能。

    三、如何实现/使用缓存
    实现缓存需要考虑以下问题:

    1、 哪些页面会在短时间内不会改变?
    分析自己的站点,这样的页面很多。譬如一个站点通常都有新闻资讯类的栏目,这些栏目通常都是站点维护人员在一天的某个时间发布资料,之后很少改动页面。那么这些页面就适合于采用静态文件缓存。实际上,所谓新闻发布系统就是这么做的,那么那也可以参考这些系统的思想改造自己的原有动态asp页面。

    2、 那些页面针对全部访问者都采用同一个逻辑生成(也就是不区分访问者)。
    除了新闻资讯之类的栏目所有访问者都看一个界面外,论坛等消耗资源的应用一般也可以设计成统一逻辑生成(同一个贴子,张三李四看的都一样),针对这类应用页面我们也可以采用静态缓存来实现。也可以考虑将数据片断化,利用脚本技术在服务器处理能力之外也就是客户端浏览器进行处理。


    3、 采用缓存的代价和收获。
    主要就是“空间换(响应)时间”。利用缓存技术将之后频繁需要的内容进行预处理,使之提高web服务器响应能力,更重要赢得访问者的欢心。
代价就是web空间需求增加,同时又可能影响到访问效果。
但我认为适当的缓存,是利大于弊的。

    4、 那些地方不适宜采用缓存
    动态查询页面,每个人的查询内容不一样,所以显示结果不大一样,所以不大可能将查询结果生成缓存,所以采用缓存较为复杂且缓存利用率底下,造成管理成本上什(假设你缓存了1000个查询关键字,那么管理这些关键字同缓存的对应也是麻烦事)。

    四、实例分析
    假设一个建议论坛的原有布局如下:
Pages: 1/1 First page 1 Final page
Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot