繁体   English   中英

有没有一种方法可以显示或查看Excel-VBA中分配的内存或数组的使用情况?

[英]Is there a way to display or to view the memory allocated or usage of an array in Excel-VBA?

我想在代码中查看特定数组的内存使用情况。 似乎这个全局数组在我的内存中引起了很多使用。 这也会导致我们的代码出现运行时错误。 当我们擦除该特定阵列时,RTE问题已解决。 另一方面,我们要监视此数组的内存使用情况以获取文档。

我们尝试使用任务管理器来监视内存,但这是针对整个应用程序的。

我希望获取或显示用于监视的特定阵列的已分配内存。

样本简化代码:

全球宣言:

Public array_double(1 to 12) as New Double

内部局部函数

For s = 1 To 8
    For i = 1 To 12
            array_double(i) = 0#
    Next i

    For r = 1 To 64
        For i = 1 To 12
                array_double(i) = array_double(i) + some_value_double
        Next i
    Next r     
Next s

数组存储的是什么-对象,序数类型或字符串? 我认为以下问题和可能的答案可能会有帮助: VBA是否等效于Sizeof()?

这是我在Excel 2003中测试的代码:

Public array_double(1 To 12) As Double

Sub test()
  For s = 1 To 65535
    For i = 1 To 12
      array_double(i) = 0#
    Next i

    For r = 1 To 64
      For i = 1 To 12
        array_double(i) = array_double(i) + 1
      Next i
    Next r
  Next s
  Debug.Print s
End Sub

多次运行后,任务管理器中的Excel.exe进程的“内存使用情况”列保持为24MB。

我的假设是OP正在检测的泄漏不在数组中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM