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

改进 ASP 的字符串处理性能

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/17
owth > MinimimGrowth, m_nGrowth, MinimimGrowth) m_nSize = m_nSize + nGrowth m_sText = m_sText & Space$(nGrowth) End IfEnd Sub'' 将缓冲区大小调整到当前使用的大小Private Sub Shrink() If m_nSize > m_nPos Then m_nSize = m_nPos - 1 m_sText = RTrim$(m_sText) End IfEnd Sub'' 添加单个文本字符串Private Sub AppendInternal(ByVal Text As String) If (m_nPos + Len(Text)) > m_nSize Then Grow Len(Text) Mid$(m_sText, m_nPos, Len(Text)) = Text m_nPos = m_nPos + Len(Text)End Sub'' 添加一些文本字符串Public Sub Append(ParamArray Text()) Dim nArg As Long For nArg = 0 To UBound(Text) AppendInternal CStr(Text(nArg)) Next nArgEnd Sub '' 返回当前字符串数据并调整缓冲区大小Public Function ToString() As String If m_nPos > 0 Then Shrink ToString = m_sText Else ToString = "" End IfEnd Function'' 清除缓冲区并重新初始化Public Sub Clear() InitBufferEnd Sub

此类中使用的基本原则是,在类级别将变量 (m_sText) 用作字符串缓冲区,并使用 Space$ 函数以空格字符填充此缓冲区以将其设置为特定的大小。如果要将更多文本与现有文本连接在一起,则在检查缓冲区的大小足以存放新文本后,使用 Mid$ 函数在正确位置插入文本。ToString 函数将返回当前存储在缓冲区中的文本,并将缓冲区的大小调整为能够容纳此文本的正确长度。使用 StringBuilder 的 ASP 代码如下所示:

Function WriteHTML( Data )Dim oSBDim nRepSet oSB = Server.CreateObject( "StringBuilderVB.StringBuilder" )'' 用大小和增长系数初始化缓冲区oSB.Init 15000, 7500For nRep = 0 to 99 oSB.Append "<TR><TD>", (nRep + 1), "</TD><TD>", _    Data( 0, nRep ), "</TD><TD>", _    Data( 1, nRep ), "</TD><TD>", _    Data( 2, nRep ), "</TD><TD>", _    Data( 3, nRep ), "</TD><TD>", _    Data( 4, nRep ), "</TD><TD>", _    Data( 5, nRep ), "</TD></TR>"NextWriteHTML = oSB.ToString()Set oSB = NothingEnd Function

使用 StringBuilder 需要一定的开销,因为每次使用此类时都必须创建它的实例,并且在创建第一个类实例时必须加载包含此类的 DLL。对 StringBuilder 实例进行额外方法调用时也需要开销。使用加括号的“&”方法时,StringBuilder 如何执行取决于多个因素,包括连接的数目、要构建的字符串的大小以及选择的 StringBuilder 字符串缓冲区的初始化参数的性能。请注意,在多数情况下,将缓冲区中所需的空间量估计得略高一些要远远好于让其不断增长。

内置方法

ASP 包含一种非常快捷的创建 HTML 代码的方法,只需多次调用 Response.WriteWrite 函数使用隐式优化的字符串缓冲区,此缓冲区能够提供非常优秀的性能特性。修改后的 WriteHTML 代码如下所示:

Function WriteHTML( Data )Dim nRepFor nRep = 0 to 99 Response.Write "<TR><TD>"  Response.Write (nRep + 1)  Response.Write "</TD><TD>" Response.Write Data( 0, nRep )  Response.Write "</TD><TD>" Response.Write Data( 1, nRep )  Response.Write "</TD><TD>"  Response.Write Data( 2, nRep )  Response.Write "</TD><TD>" Response.Write Data( 3, nRep )  Response.Write "</TD><TD>" Response.Write Data( 4, nRep )  Response.Write "</TD><TD>" Response.Write Data( 5, nRep )  Response.Write "</TD></TR>	

	
			
  • 上一篇资讯: ASP 指南
  • 下一篇资讯: pjblog2的参数第1/2页
  • 网学推荐

    免费论文

    原创论文

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