好吧,我必须调试内存分配问题。 应用程序随着时间的推移耗尽内存。 我需要为.net窗口应用程序模拟低内存系统,以便更快地重现内存不足问题。

PS:我的初步调查表明,在应用程序分配非托管资源(Managed DX)时会发生内存泄漏。

===============>>#1 票数:9

编写另一个程序来分配你所有系统的内存:)

或者,在具有低内存的VM中进行调试

===============>>#2 票数:1

static volatile byte[] wasted; //volatile to avoid any compiler cleverness "saving" us!
static void Main(string[] args)
{
   wasted = new byte[1024 * 1024 * 1024];//waste a gig!
}

在您的应用上运行Application Verifier也是值得的。

===============>>#3 票数:0

另外,我建议您使用.NET分析器,以便检查程序的哪个区域分配更多内存。

===============>>#4 票数:0

如果应用程序内存不足,访问非托管资源,则可能是内存泄漏。 在低内存环境中运行应用程序不会直接帮助您诊断问题,它会更快地发生。

您需要分析应用程序的内存使用情况,以确定如何分配内存并找到泄漏。 正常的分析工具无济于事,因为不会分析非托管代码。 您必须通过内存监控应用获得创意。

  ask by Trainee4Life translate from so

未解决问题?本站智能推荐: