我正在与我的应用程序中的一些内存问题作斗争,并最终设法深入了解它。我最近有一个例子,在处理任务时我的进程内存高达 800mb。我现在已经设法让它稳定在 140mb,这是完全可以接受的。然而,这让我质疑我对 .NET 垃圾收集器的理解。我的内存问题是通过在每次使用后释放 2 个非 .NET 对象(TADOCommand 和 TDataSet - 在 delphi 中)来解决的。这些变量的范围是过程本地的,所以我认为它们应该被自动清除,因为没有任何东西应该引用它们。
那么,.NET 如何处理释放非 .NET 的对象呢?或者不是吗?
谢谢。