关于"&"运算符效率低下的问题,好的解决办法

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

我们知道用“ & ”号比用“+”号快。因为“+”要对字符窜变量做类型判断并转换。

当时也没想出什么好办法。只是将两次“&”运算拆开,速度提了一倍。还是解决不了问题。

结果就是:for i 1 to 5000 ,i以字符形式相加。用&运算,要300-500ms

现在试试下面这个。建了个CStrCat的类。

程序代码:

Class CStrCat '这是类开始。

Private i,sa()

Public Property Get Value

Redim Preserve sa(i)

Value=Join(sa,"")

End Property

Private Sub Class_Initialize()

i=clng(0)

Redim sa(500)

End Sub

Private Sub Class_Terminate()

Erase sa

End Sub

Public function Add(ps)

If len(ps)=0 Then Exit Function

If (i>=ubound(sa)) Then upsize

sa(i)=ps

i=i+1

End function

Private Sub UpSize()

Dim u

u=ubound(sa)

Redim Preserve sa(clng(u+u*0.1))

End Sub

End Class

你可以用这个代码测试一下性能分别:

程序代码:

<%

PageExeTime1=Timer * 1000 '计时开始

Set sc=new CStrCat

For i=0 To 5000

sc.add i&"aaaaaa"

next

response.write sc.value

'计时结束

Response.Write ",Processed time:" & fix(abs(CDBL(Timer)*1000 - PageExeTime1))&"ms</font></p>"

PageExeTime2=Timer * 1000

For i= 0 To 5000

sc2=sc2&i&"aaaaaa"

Next

response.write sc2

'计时结束

Response.Write ",Processed time:" & fix(abs(CDBL(Timer)*1000 - PageExeTime2))&"ms</font></p>" %>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航