VB6字符串连接操作效率

n久没上来发东西了,感觉很过意不去,又找了点东西放上来。

VB6字符串连接(&)操作效率

本人某天为了优化某人写的VB6模块而临时测试了下VB6里面字符串的“&”(连接)操作的耗时。

现在把当时的记录放上来,大家可以参考下。

试试下面三段VB6代码:

功能完全相同,都是获得一个字符串,这个字符串含有重复10遍的连起来的从0到10000的数字。

但效率可是完全不同的,你可以分别测试一下它们的耗时。

1----------------

  Dim  str1  as   String
 
Dim  s1  As   Long , s2  As   Long
  
  
For  s2  =   0   To   10
    
For  s1  =   0   To   10000
      str1 
=  str1  &  Str$(s1)
    
Next
  
Next

 

 

2-----------------

Dim  str1  as   String ,str2  as   String
Dim  s1  As   Long , s2  As   Long

  
For  s2  =   0   To   10
    str2 
=   ""
    
For  s1  =   0   To   10000
      str2 
=  str2  &  Str$(s1)
    
Next
    str1 
=  str1  &  str2
  
Next

 

 

3-----------------

   Dim  str1  as   String ,str2  as   String
  
Dim  s1  As   Long , s2  As   Long
  
Dim  st1  As   Long , ln1  As   Long
  
For  s2  =   0   To   10
    str2 
=   Space ( 100000 )
    st1 
=   1
    
For  s1  =   0   To   10000
      ln1 
=   Len (Str(s1))
      
Mid (str2, st1, ln1)  =  s1
      st1 
=  st1  +  ln1
    
Next
    
    st1 
=  str1  &   RTrim $(str2)
  
Next

 


我在Debug模式下,Core2Duo T7100下的测试结果是
1、76秒多
2、2.6秒左右
3、120毫秒左右

编译成代码速度优化的EXE本地代码后,速度没有提高多少。

差了多少倍?

结论:字符串&操作相当的费时,而且字符串越大&操作越费时。
(同时可见字符串&操作几乎不能被优化多少)

 

(这么低的效率,明显VB6对&操作只是呆板的重新申请空间然后copy而已)

另外,貌似Mid语句的效率没有想象中的那么低下。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值