当前位置: 网学 > 编程文档 > ASP > 正文

改进 ASP 的字符串处理性能

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/17
"NextEnd Function

虽然这段代码很可能为我们提供最佳的性能和可缩放性,但在某种程度上已经破坏了封装,因为现在会将函数内部的代码直接写入 Response 流,所以调用代码丧失了一定程度的控制权。另外,移动此代码(例如,移入 COM 组件)将变得更加困难,因为此函数与 Response 流存在依赖关系。

测试

上面提到的四种方法分别通过一个简单的 ASP 页面(包含一个由虚拟字符串数组提供数据的单个表格)进行了测试。我们使用 Application Center Test® (ACT) 从单个客户端(Windows® XP Professional,PIII-850MHz,512MB RAM)针对 100Mb/sec 网络中的单个服务器(Windows 2000 Advanced Server,双 PIII-1000MHz,256MB RAM)执行了测试。ACT 配置为使用 5 个线程,以模拟 5 个用户连接至网站时的负载。每个测试都包括 20 秒预热时间和随后的 100 秒负载时间,在负载期间创建了尽可能多的请求。

通过更改主表格循环中的重复次数,针对不同数目的连接操作重复运行测试,如 WriteHTML 函数中的代码片断所示。运行的每个测试都使用上文提到的四种不同的方法执行。

结果

下面的一系列图表显示了各种方法对整个应用程序吞吐量的影响,以及 ASP 页面的响应时间。通过这些图表,我们可以了解应用程序支持的请求数目,以及用户等待页面下载至浏览器所需的时间。

表 1:使用的连接方法缩写的说明

方法缩写说明
RESP内置 Response.Write 方法
CAT标准连接(“&”)方法
PCAT加括号的连接(“&”)方法
BLDRStringBuilder 方法

在模拟典型 ASP 应用程序工作负荷方面,此测试与实际情况相差甚远,从表 2 中可以明显看到,即使重复 420 次,此页面仍不是特别大。现在很多复杂的 ASP 页面在这些数字上都是比较高的,设置有可能超出此测试范围的限制。

表 2:测试示例的页面大小和连接数目

重复次数连接数目页面大小(以字节为单位)
152402,667
304804,917
457207,167
609609,417
751,20011,667
1201,92018,539
1802,88027,899
2403,84037,259
3004,80046,619
3605,76055,979
4206,72062,219

图 2:吞吐量结果图

从图 2 的图表中可以看到,正如我们所预期的,多重 Response.Write 方法 (RESP) 在测试的整个重复测试范围中为我们提供了最佳的吞吐量。但令人惊讶的是,标准字符串连接方法 (CAT) 的下降如此巨大,而加括号的方法 (PCAT) 在重复执行 300 多次时性能依旧要好很多。在大约重复 220 次之处,字符串缓存带来的性能提高超过了 StringBuilder 方法 (BLDR) 固有的开销,在这一点以上,在此 ASP 页面中使用 StringBuilder 所需的额外开销是值得的。

图 3:响应时间结果图

图 4:省略 CAT 的响应时间结果图

图 3 和图 4 中的图表显示了按“到第一字节的时间”测量的响应时间(以毫秒为单位)。因为标准字符串连接方法 (CAT) 的响应时间增加过快,所以又提供了未包括此方法的图表(图 4),以便分析其他方法之间的差异。有一点值得注意,多重 Response.Write 方法 (RESP) 和 StringBuilder 方法 (BLDR) 随重复次数的增加呈现一种近似线性的增长,而标准连接方法 (CAT) 和加括号的方法 (PCAT) 则在超过一定的阈值之后开始迅速增加。

小结

本文着重讲述了如何在 ASP 环境中应用不同的字符串构建技术,这些内容同样适用于所有使用 Visual Basic 代码创建大型字符串的方案,例如手动创建 XML 文档。以下原则可以帮助您确定哪种方法最适合您的需要。

  • 首先尝试加括号的“&”方法,尤其是在处理现有代码时。这种方法对代码结构的影响微乎其微,但您会发现应用程序的性能将显著增强,甚至会超出预定目标。
  • 在不破坏所需的封装级别的情况下使用 Response.Write。使用此方法,可以避免不必要的内存内字符串处理,从而提供最佳的性能。
  • 使用 StringBuilder 构建真正大型或连接数
  • 上一篇资讯: ASP 指南
  • 下一篇资讯: pjblog2的参数第1/2页
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号