VB6内存限制

时间:2017-06-26 14:55:10

标签: memory vb6

我目前支持在多台服务器上运行的VB6应用程序(我们正在替换它,但这是一个很慢的过程!)。谁能告诉我VB6进程可以解决的最大内存量是多少?我们使用各种操作系统:

  • Windows Server 2003 32位
  • Windows Server 2008 64位
  • Windows Server 2008 R2 64位

我尝试过使用这样的资源: https://blogs.msdn.microsoft.com/tom/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes/

但是,如果由于它讨论基于.NET的应用程序这是准确的,我会持怀疑态度,但是我找不到比这更重要的事情了。

1 个答案:

答案 0 :(得分:2)

很难把这些“如果超人与上帝的斗争怎么样”的问题太认真了。早在这成为一个问题之前,你应该从内存驻留数据结构转移到磁盘文件或数据库。

但即使没有与/ LARGEADDRESSAWARE链接并启动到3GB模式,VB6程序也可以在32位Windows上处理相当多的数据。

Option Explicit

Private Sub Main()
    Const MAX_BYTES As Long = &H63700000
    Dim Bytes() As Byte

    ReDim Bytes(MAX_BYTES)
    Bytes(MAX_BYTES) = 255
    MsgBox "Success" & vbNewLine & vbNewLine _
         & "Bytes(MAX_BYTES) = " & CStr(Bytes(MAX_BYTES)) & vbNewLine & vbNewLine _
         & "MAX_BYTES = " & Format$(MAX_BYTES, "#,##0")
End Sub

结果:

Success

Bytes(MAX_BYTES) = 255

MAX_BYTES = 1,668,284,416

链接的博客文章指出.Net流程的局限性及其无法应对使用大量数据是正确的。像.Net这样的脚本引擎并不是为这些东西而构建的,并且不要低估巨大的库的开销,即使最简单的.Net程序也会拖入它的地址空间。