作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道这两个代码之间是否存在性能差异:
Open strFile For Output As #fNum
For var1 = 1 to UBound(strvar1)
For var2 = 1 to UBound(strvar2)
For var3 = 1 to UBound(strvar3)
For var4 = 1 to UBound(strvar4)
Print #fNum texte
Next var4
Next var3
Next var2
Next var1
Close #fNum
和
For var1 = 1 to UBound(strvar1)
For var2 = 1 to UBound(strvar2)
For var3 = 1 to UBound(strvar3)
For var4 = 1 to UBound(strvar4)
texteTotal = texteTotal + texte
Next var4
Next var3
Next var2
Next var1
Open strFile For Output As #fNum
Print #fNum texteTotal
Close #fNum
万一循环很大?
最佳答案
您必须尝试一下,因为这取决于 texte
的大小。
每次执行 texteTotal = texteTotal + texte
时,vba 都会生成 textTotal
的新副本。随着 textTotal
变得越来越大,你的循环速度会变慢。
您还面临创建大于 vba 可以处理的字符串的风险。
所以:
如果您正在写入网络驱动器,并且 texte
是单个字符,则第二种方法可能会更好。
如果您正在写入快速本地磁盘,并且 texte
为 64kb,并且每个数组有 1M 条目,则第一种方法会更好。
关于performance - VBA I/O 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4135501/
我是一名优秀的程序员,十分优秀!