C# · 2月 16, 2022

c# – 如何设置项目的调试实例内存限制

我们有一个项目正在获得“Out of memory exception”.我正在尝试调试此内存泄漏问题.问题是生产机器有大约1-2 GB的内存,开发机器有6 GB.而且我发现重现崩溃非常困难.

在visual studio中是否有办法减少允许分配给调试实例的内存量?

解决方法 机器中的RAM量与OutOfMemoryException无关.当进程耗尽虚拟内存,未能在地址空间中找到足以满足分配请求的漏洞时,您将获得该异常.这通常发生在32位计算机上进程的VM大小开始接近1.5 GB时.

限制虚拟内存空间的量很容易,只需在程序开头创建一堆byte []数组并将它们存储在静态变量中.这根本没有帮助诊断内存泄漏,它只是更快地跳过异常.使用内存分析器查找真正的问题.

并且考虑到这根本不是泄漏的可能性,用垃圾收集器泄漏并不容易.但只是程序处理和存储大量数据的副作用.这是通过64位操作系统轻松解决的,它提供了大量的虚拟内存空间,仅受页面文件的最大大小限制.不是RAM.