可vbs根本就没有类似于StringBuilder这样的东东,所以咱哥们只能自己想办法优化了。
	正文: 
	我写了几段代码做了测试,得出以下结果: 
	'普通字符串连接 
	StringLinkTest1() '性能最差,大约耗时20秒(最要命的是在这20秒内,整个CPU几乎是100%满负荷在运行) 
	'普通字符串连接,但使用了临时变量来提升效率 
	StringLinkTest2() '性能令人吃惊的改善,大约耗时0.2秒 
	'使用数组+Join函数处理 
	StringArrayTest() '性能最佳,大约耗时0.06秒 
	'本来还有个方法,是利用字典对象:Scripting.Dictionary 来操作的,但由于在大量连续使用的类方法的情况下,会直接影响效率(效率介于StringArrayTest和StringLinkTest2之间),在此就不贴了 
	得出的结果就是,在vbs的字符串处理上,还是可以解决效率问题的。 
	代码如下: 	
		复制代码代码如下:
			
		<% 
		'vbs版高速字符串操作代码演示 
		'淮南子编写 
		Option explicit 
		Dim StrTime,EndTime 
		Dim MyString,MyArray,ArrayIndexCount,CurIndex 
		Const TestNumber = 9999 '循环次数 
		StrTime = Timer() 
		'============测试开始============ 
		'代码执行效率 
		'本人机器配置: 
		'CPU: 酷睿双核2250 CPU频率:1.73G 
		'内存: 1GB 
		'请逐一开启方法进行测试 
		'StringLinkTest1() '性能最差,大约耗时20秒 
		'StringLinkTest2() '性能大大改善,大约耗时0.2秒 
		'StringArrayTest() '性能最佳,大约耗时0.06秒 
		'============测试结束============ 
		'输出结果 
		'Response.Write MyString 
		EndTime = Timer() 
		Response.Write "耗时:" & FormatNumber((EndTime-StrTime) * 1000,3) & " 毫秒" 
		'字符串操作函数,淮南子原创 
		Sub Add(Value) 
		If (CurIndex >= ArrayIndexCount) Then 
		ArrayIndexCount = CurIndex * 1.1 '如果欲添加项超出数组下标,则将数组容量扩增百分之10 
		ReDim Preserve MyArray(ArrayIndexCount) 
		End If 
		MyArray(CurIndex) = Value 
		CurIndex = CurIndex + 1 
		End Sub 
		'测试方法 
		'使用数组进行字符串叠加,在所有方法中,该方法性能最佳(效率较StringLinkTest2()的方法提升了近4倍) 
		Sub StringArrayTest() 
		ArrayIndexCount = 20 
		CurIndex = 0 
		ReDim MyArray(ArrayIndexCount) 
		Dim i 
		For i = 0 to TestNumber 
		Add "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
		Next 
		MyString = Join(MyArray,"") 
		End Sub 
		'测试方法1 
		'常规的字符串连接 
		Sub StringLinkTest1() 
		Dim i,str 
		dim a1 
		a1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
		For i=0 to TestNumber 
		'常规字符串连接 
		Str=(Str&a1) 
		Next 
		MyString = Str 
		End Sub 
		'测试方法2 
		'在常规的字符串连接方式中,使用临时变量来提速 ,效率较StringLinkTest1()的方法提升了近100倍 
		Sub StringLinkTest2() 
		Dim i,str,a1,TmpString 
		a1 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 
		For i=0 to TestNumber 
		'使用临时变量提速 
		TmpString = (TmpString & a1) 
		'每二百次则进行一次累计 
		If i mod 200 = 0 Then 
		'保存临时变量值 
		Str = (Str & TmpString) 
		'清空临时变量值 
		TmpString = "" 
		End If 
		Next 
		if TmpString<>"" Then MyString = (Str & TmpString) 
		End Sub 
		%> 
		如有不对之处,请大家拍拍砖,呵呵	
也可以用数组来拼接字符串啦! 			复制代码代码如下:
			
		'最简单的例子,生成num个重复的str,例如 XString(5,"<br>") '输出: <br><br><br><br><br> 
		Function XString(num,str) 
		On Error Resume Next 
		Dim i,a 
		Redim a(num-1) 
		For i=0 To num-1 
		a(i)=str 
		Next 
		XString=Join(a,"") 
		On Error GoTo 0 
		End Function 
		
		
		'字符串拼接类公共版 
		Class clsStrCat 
		Private aFStrings() 
		Private iFSPos,iFSLen,iFSIncr 
		Private Sub Class_Initialize() 
		On Error Resume Next 
		iFSIncr = STRCATBUF 
		If Err Then iFSIncr = 200 : Err.Clear 
		Reset 
		On Error GoTo 0 
		End Sub 
		Private Sub Class_Terminate() 
		Erase aFStrings 
		End Sub 
		Public Property Let Item(ByRef sData) 
		If iFSPos > iFSLen Then 
		iFSLen = iFSPos + iFSIncr 
		ReDim Preserve aFStrings(iFSLen) 
		End If 
		aFStrings(iFSPos) = sData 
		iFSPos = iFSPos + 1 
		End Property 
		Public Default Property Get Item() 
		Item = Join(aFStrings, "") 
		End Property 
		Public Sub Reset() 
		iFSPos = 0 
		iFSLen = iFSIncr 
		ReDim aFStrings(iFSLen) 
		End Sub 
		Public Sub Resize(n) 
		If Not IsNumeric(n) Then Exit Sub 
		iFSPos = 0 
		iFSIncr = n 
		iFSLen = iFSIncr 
		ReDim aFStrings(iFSLen) 
		End Sub 
		Public Property Get Strs() 
		Strs=aFStrings 
		End Property 
		Public Property Get Count() 
		Count=iFSPos 
		End Property 
		Public Property Get IsInit() 
		If iFSPos=0 Then IsInit=True Else IsInit=False 
		End Property 
		End Class