gpt4 book ai didi

.net - VB6 应用程序调用 .NET DLL OutOfMemory 异常

转载 作者:行者123 更新时间:2023-12-02 19:43:23 25 4
gpt4 key购买 nike

我们有一个调用 .NET DLL 的 VB6 应用程序。有时,在 VB6 应用程序运行很长时间并多次调用 .NET 代码后,.NET 方面会抛出 OutOfMemory 异常,即使计算机上有足够的可用内存。 VB6 的内存空间也远未达到极限。

.NET 端是否保留单独的内存池?或者它是 VB6 应用程序内存池的一部分吗?

如果是分开的,有没有办法看到它有多大?我的任务管理器中唯一占用大量内存的项目是 SQL Server 和 VB6 应用程序(都是预期的)。

这种情况不会经常发生,但一旦发生,就很难确定为什么系统不分配更多内存。

最佳答案

答案最终非常简单:

使用 DEBUG 配置构建的 .NET DLL 在运行时会发生泄漏。

切换到 RELEASE 版本解决了我的问题。

背景:

我终于让 ANTS 调试了 VB6 应用程序并看到了 .NET 进程(必须更改 VB6 代码以尽快加载 .NET 代码)。一旦我这样做了,我看到了大量的弱引用对象,其父对象是 __ENCList。此类允许在调试期间进行编辑并继续。快速的 Google 搜索立即显示这是由使用 DEBUG 构建引起的。

My Google Search

链接:

WeakReferences in Debug Build

关于.net - VB6 应用程序调用 .NET DLL OutOfMemory 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1723797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com