提高ASP性能的最佳选择

精贴 置顶
1513 0

    ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这些建议的基础都是从ASP平台工作的结构上所得出的结论,对实际获得的性能的提高没有量的测量。由于这些建议需要更加复杂的编码过程并降低了编码的可读性,开发人员就只能在看不到实际运行效果的情况下,独自衡量为了提高他们ASP应用程序的性能是否值得付出这些代价。

  本文分为两大部分,我将介绍一些性能测试结果,帮助开发人员来确定某一特定举措是否不仅对将来的项目来说是值得的,并且能够对原来的项目进行更新。在第一部分我将回顾一些ASP开发的基础性问题。在第二部分,将涉及一些最优化ADO函数,并将它们的结果与调用VB COM对象执行相同ADO函数的ASP页面进行比较。这些结果很让人开眼界,甚至有些时候是很令人吃惊的。

  在本文中,我们将回答以下问题:

  * 将ASP生成的内容写入响应流中最有效的方法是什么?

  * 是否应该开启缓冲器?

  * 是否应该考虑向ASP代码中增加注释?

  * 是否应该为页面明确地设置默认语言?

  * 如果不需要,是否应该关闭Session 状态?

  * 是否应该把脚本逻辑放在子程序和函数区中?

  * 使用包含文件有什么影响?

  * 执行错误处理时会施加什么样的负载?

  * 设置一个上下文处理是否对性能有影响?

     所有测试都是用Microsoft的Web应用程序重点工具(WAST)来进行的,这是一个免费的工具,可以在这里找到。我用WAST创建了一个简单的test 脚本,反复调用下面所描述的ASP页面测试(每个超过70,000次)。反应的时间基于平均最后字节总时间(TTLB), 也就是从最初请求的时间到工具从服务器接收最后一位数据的时间。我们的测试服务器是一个Pentium 166,内存为196MB,客户机为Pentium 450,内存为256MB。你也许会想这些机器的性能并不算很高级,但是不要忘了,我们并不是要测试服务器的容量,我们只是要测试服务器每次处理一个页面所用的时间。测试期间这些机器不做其它工作。WAST 测试脚本、测试报告以及所有的ASP测试页面都包含在ZIP文件中,你可以自己进行回顾和测试。
将ASP生成的内容写入响应流中最有效的方法是什么?
   使用ASP的一个最主要原因是在服务器上生成动态内容。所以很明显,我们测试的起点是确定将动态内容发送到响应流中的最适合的方式。在多种选择中,有两个是最基本的:一是使用内联ASP标记,另一个是使用Response.Write 语句。

  为测试这些选择,我们创建了一个简单的ASP页面,其中定义了一些变量,然后将它们的值插入表格中。虽然这个页面很简单也不是很实用,但它允许我们分离并测试一些单独的问题。

  使用ASP内联标记

  第一个测试包括使用内联ASP标记< %= x % >,其中x是一个已赋值的变量。到目前为止,这个方法是最容易执行的,并且它使页面的HTML部分保持一种易于阅读和维护的格式。

< % OPTION EXPLICIT
 Dim FirstName
 Dim LastName
 Dim MiddleInitial
 Dim Address
 Dim City
 Dim State
 Dim PhoneNumber
 Dim FaxNumber
 Dim EMail
 Dim BirthDate
 FirstName = "John"
 MiddleInitial = "Q"
 LastName = "Public"
 Address = "100 Main Street"
 City = "New York"
 State = "NY"
 PhoneNumber = "1-212-555-1234"
 FaxNumber = "1-212-555-1234"
 EMail = "john@public.com"
 BirthDate = "1/1/1950"
 % >
 < HTML >
 < HEAD >
 < TITLE >Response Test< / TITLE >
 < /HEAD >
 < BODY >
 < H1 >Response Test< /H1 >
 < TABLE >
 < tr >< td >< b >First Name:< /b >< /td >< td >< %= FirstName % >< /td >< /tr >
 < tr >< td >< b >Middle Initial:< /b >< /td >< td >< %= MiddleInitial % >< /td >< /tr >
 < tr >< td >< b >Last Name:< /b >< /td >< td >< %= LastName % >< /td >< /tr >
 < tr >< td >< b >Address:< /b >< /td >< td ><

  • 没有任何评论
今日天气 ···

···

···

···

热门排行
CSS cursor鼠标样式一览表 2012-06-25
.NET后台写JS代码 2011-11-03
网站地址多出jdfwkey的问题解析及... 2010-08-25
数据库xxx的日志已满,请备份该数... 2013-07-19
百度、google、Yahoo网站地图制作... 2011-01-30
<a>标签的伪类书写顺序问题... 2010-09-04
什么是长尾关键词? 2010-09-24
CEO名言 2010-08-31
Mysql 主从数据库同步 2010-09-12
用ASP实现网页BBS 2010-11-01
博主推荐
本个人博客微信公众平台上线啦~~... 2013-10-13
饼哥网络互联上线啦~~要买域名空... 2013-09-20
网站title标题如何正确修改不会被... 2013-08-26
饼哥通讯录系统上线啦,欢迎大家... 2013-08-24
ASP .NET MYSQL 的简单分页 并不... 2013-08-19
网站有弹窗广告这样的站点,百度... 2013-08-17
做淘宝SEO优化需要注意的8大问题 2013-08-17
淘宝网怎么做SEO优化 2013-08-17
站长们要学习的“苍井空精神” 2013-08-17
苹果公司今日发布了iOS 7第五个开... 2013-08-07
随便看看
Google网站分析工具功能详解 2010-10-02
【小木桩】继承viewgroup实现左侧... 2013-06-27
修正IE6的bug的10个技巧 2010-09-06
js判断输入是否中文,数字,身份证... 2010-09-05
JS,ASP.NET刷新本页面 2011-03-21
一个ASP统计制作实例 2010-11-02
UNIX时间戳与.net日期类的转换 2013-08-19
兼容FF 加入收藏夹和设为首页JS 2010-09-02
Mysql 主从数据库同步 2010-09-12
IIS安全设置技巧 2010-10-15
RSS新闻
传媒新闻
CSDN
八卦新闻
女性新闻
台湾新闻
互联网
军事-新浪博客
IT-新浪博客
汽车新闻
游戏新闻
国际新闻
国内新闻
体育新闻
我的微博
北京 上海 杭州 深圳 广州 成都