2011-12-11 40 views
4

那么,我必须调试内存分配问题。随着时间的推移,应用程序内存不足。我需要为.net窗口应用程序模拟低内存系统,以此更快速地重现内存不足问题。如何模拟.net应用程序的低内存?

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

+0

内存不足异常通常并不意味着实际用完了物理内存,而是用尽了虚拟内存地址空间。 – svick

回答

9

写另一个程序,所有分配系统内存:)

另外,调试在虚拟机与低内存的

0

另外,我建议你使用.NET探查这样你就可以检查你的程序的哪个区域正在分配更多的内存。

0

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

您需要剖析应用程序的内存使用情况,以确定如何分配内存并查找泄漏。普通的分析工具将无法帮助,因为非托管代码不会被分析。您必须通过内存监控应用程序获得创意。

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也是值得的。

+0

AppVerifier是做这件事的最佳方式 –

+0

是的,我会直接为此。当然,OP有可能已经做到了,并且没有任何快乐。 –

+0

AppVerifier是否适用于.Net Windows应用程序? – Trainee4Life

相关问题