performance - VBA I/O 性能

标签 performance vba io

我想知道这两个代码之间是否存在性能差异:

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/

相关文章:

asp.net - 我应该如何处理这些 RAM?

performance - 标准的 Jira on Tomcat 安装可以承受多少负载?

arrays - 为什么当通过 ParamArray 将数组元素传递给函数时,函数中会到达 varpointer?

python - 如何使用 exec 命令将字节数据从 golang 发送到 python?

java - 我应该同步 ObjectOutputStream.writeObject(Object) 吗?

string - PowerShell 将整数转换为字符串的速度很慢

c++ - unix中c++多核CPU使用教程

excel - 复制并粘贴到下一个以 B59 开头的空行

vba - 取消选中 IE 中的复选框

c++ - 大量文件的原子删除