ASP动态生成的内容以什么方式输出效率最高?最好用哪种方法提取数据库记录集?本文测试了近20个这类ASP开发中常见的问题,测试工具所显示的时间告诉我们:这些通常可以想当然的问题不仅值得关注,而且还有出乎意料的秘密隐藏在内。
原文出处:http://www.asptoday.com/articles/20000113.htm
编译如下:
ASP开发者总是在追求更好的应用性能和可伸缩性。虽然有许多书籍和网站能够为实现这些目标提供出色的建议,然而,这些建议的根据常常是从ASP工作原理出发所作出的判断,不能对实际性能的改善程度作任何定量的分析。由于这些建议通常意味着编码过程的复杂化、降低代码的可读性,开发者不能根据ASP应用的性能改善程度评估遵从这些建议所付出的代价是否合理,无法看到实际性能的任何度量。
本文提供一些ASP代码的性能测试和分析结果,希望能够帮助ASP开发者了解自己的编码习惯是否值得在未来的工程中继续保留,还是有必要修改已有的工程以获得更好的性能。本文分成两个部分:在第一部分中,我们考察ASP开发中的一些基本问题;在第二部分中,我们将深入ADO应用优化方面的测试。在测试中我们发现,许多测试结果不仅引人注目,而且可以说是出人意料。
第一部分将回答以下问题:
ASP动态生成的内容以什么方式输出效率最高?
启用缓冲对性能的影响有多大?
ASP代码中注释对执行效率有何影响?
是否应该显式设置页面的默认脚本语言?
如果会话状态并非必需,是否有必要关闭它?
把代码放入过程或函数会影响性能吗?
使用包含文件是否对性能有影响?
实现错误控制意味着付出多大的开销?
设置事务上下文会降低代码效率吗?
VBScript Option Explicit对性能有何影响?
测试所用的工具是Microsoft的Web Application Stress Tool(WAST),这是一个免费工具,位于 http://webtool.rte.microsoft.com/。在WAST中,我们利用一个简单的WAST测试脚本重复地调用下面介绍的测试ASP页面(每个都超过70000次)。响应时间以平均“直至最后字节的累计时间”为标准(Total Time to Last Byte,TTLB),它的含义是:从第一个请求到测试工具接收到服务器应答数据的最后一个字节之间的时间总和。
测试服务器是196 MB内存的Pentium 166,客户机是256 MB内存的 Pentium 450。或许有的读者会认为这些机器的性能不高,不过这并不重要,因为我们不是在测试服务器的能力,而只是利用服务器处理一个页面所需要的时间来估量脚本执行效率。测试时两台机器上没有运行其他任务。测试用的WAST脚本以及ASP页面均附于本文后面的ZIP文件内,读者可以下载它进行同样的测试。