我目前支持在多台服务器上运行的VB6应用程序(我们正在替换它,但这是一个很慢的过程!)。谁能告诉我VB6进程可以解决的最大内存量是多少?我们使用各种操作系统:
我尝试过使用这样的资源: https://blogs.msdn.microsoft.com/tom/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes/
但是,如果由于它讨论基于.NET的应用程序这是准确的,我会持怀疑态度,但是我找不到比这更重要的事情了。
答案 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程序也会拖入它的地址空间。