找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 432|回复: 2

[VBA程序]:为什么vb的字符合并运算符“&”运行效率很低

[复制链接]
发表于 2004-6-3 14:17:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
为什么vb的字符合并运算符“&”运行效率很低

&的运行效率比加减乘除低多了,有兴趣的做个循环运算,相差十几倍,我用写硬盘文件的方式来合并字符串都要快得多,这是什么原因?大家有什么更好的方法合并字符串?因为我要做大量的字符串合并运算。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2004-6-3 14:38:07 | 显示全部楼层
涉及到内存分配的原因,A=A & B,它要先分配一个容纳A和B长度的内存空间,然后执行字符串连接的操作,最后释放原来A的内存空间。所以,对于大量的&操作时,要预先分配一块足够大的空间。如:

  1.   [FONT=courier new]
  2. Sub test()
  3.     Dim A As String
  4.     Dim B As String
  5.     B = "1234567890"
  6.     Dim i As Integer
  7.     Debug.Print Now
  8.     For i = 1 To 10000
  9.         A = A & B
  10.     Next
  11.     Debug.Print Now
  12.     A = String(100000, Chr(0))
  13.     For i = 1 To 10000
  14.         Mid(A, (i - 1) * Len(B) + 1, Len(B)) = B
  15.     Next
  16.     Debug.Print Now
  17. End Sub
  18. 测试结果:
  19. 2004-06-03 14:35:14
  20. 2004-06-03 14:35:19
  21. 2004-06-03 14:35:19
  22.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-3 21:16:45 | 显示全部楼层
你真是太厉害了,
我比较了一下,两个速度相差大约150倍
你的电脑有点慢呢,恐怕是奔3吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 23:01 , Processed in 0.390480 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表