转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
改进ASP应用程序中的字符串处理性能         ★★★★

改进ASP应用程序中的字符串处理性能

作者:闵涛 文章来源:闵涛的学习笔记 点击数:733 更新时间:2009/4/23 10:27:34
  摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据。本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面要优于其他方法。本文假定您已经具备一定的 ASP 和 Visual Basic 编程方面的知识。

  简介

  编写 ASP 页面时,开发人员实际上是创建一个格式化的文本流,通过 ASP 提供的 Response 对象写入 Web 客户端。创建此文本流的方法有多种,而您选择的方法将对 Web 应用程序的性能和可缩放性产生很大影响。很多次,在我帮助客户优化其 Web 应用程序的性能时,发现其中一个比较有效的方法是更改 HTML 流的创建方式。本文将介绍几种常用技术,并测试它们对一个简单的 ASP 页面的性能所产生的影响。

  ASP 设计

  许多 ASP 开发人员都遵循良好的软件工程原则,尽可能地将其代码模块化。这种设计通常使用一些包含文件,这些文件中包含对页面的特定不连续部分进行格式化生成的函数。这些函数的字符串输出(通常是 HTML 表格代码)可以通过各种组合创建一个完整的页面。某些开发人员对此方法进行了改进,将这些 HTML 函数移到 Visual Basic COM 组件中,希望充分利用已编译的代码提供的额外性能。

  尽管这种设计方法很不错,但创建组成这些不连续 HTML 代码组件的字符串所使用的方法将对 Web 站点的性能和可缩放性产生很大的影响,无论实际的操作是在 ASP 包含文件中执行还是在 Visual Basic COM 组件中执行。

  字符串连接

  请看以下 WriteHTML 函数的代码片断。名为 Data 的参数只是一个字符串数组,其中包含一些要格式化为表格结构的数据(例如,从数据库返回的数据)。

  这是很多 ASP 和 Visual Basic 开发人员创建 HTML 代码时常用的方法。sHTML 变量中包含的文本返回到调用代码,然后使用 Response.Write 写入客户端。当然,这还可以表示为直接嵌入不包含 WriteHTML 函数的页面的类似代码。此代码的问题是,ASP 和 Visual Basic 使用的字符串数据类型(BSTR 或 Basic 字符串)实际上无法更改长度。这意味着每当字符串长度更改时,内存中字符串的原始表示形式都将遭到破坏,而且将创建一个包含新字符串数据的新的表示形式:这将增加分配内存和解除分配内存的操作。当然,ASP 和 Visual Basic 已为您解决了这一问题,因此实际开销不会立即显现出来。分配内存和解除分配内存要求基本运行时代码解除各个专用锁定,因此需要大量开销。当字符串变得很大并且有大块内存要被快速连续地分配和解除分配时,此问题变得尤为明显,就像在大型字符串连接期间出现的情况一样。尽管这一问题对单用户环境的影响不大,但在服务器环境(例如,在 Web 服务器上运行的 ASP 应用程序)中,它将导致严重的性能和可缩放性问题。

  下面,我们回到上述代码片段:此代码中要执行多少个字符串分配操作?答案是 16 个。在这种情况下,“&”运算符的每次应用都将导致变量 sHTML 所指的字符串被破坏和重新创建。前面已经提到,字符串分配的开销很大,并且随着字符串的增大而增加,因此,我们可以对上述代码进行改进。


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台