我们有一个项目出现“内存不足异常”。我正在尝试调试此内存泄漏问题。问题是生产机器有大约 1-2 GB 的内存,而开发机器有 6 GB。而且我发现重现崩溃非常困难。
在 Visual Studio 中有没有一种方法可以减少允许分配给调试实例的内存量?
我们有一个项目出现“内存不足异常”。我正在尝试调试此内存泄漏问题。问题是生产机器有大约 1-2 GB 的内存,而开发机器有 6 GB。而且我发现重现崩溃非常困难。
在 Visual Studio 中有没有一种方法可以减少允许分配给调试实例的内存量?
机器中的 RAM 量与 OutOfMemoryException 无关。当进程用尽虚拟内存时,您将收到该异常,无法在地址空间中找到足够大以适应分配请求的漏洞。这通常发生在进程的 VM 大小在 32 位机器上开始接近 1.5 GB 时。
限制虚拟内存空间的数量很容易,只需在程序开始时创建一堆 byte[] 数组并将它们存储在静态变量中。这根本无助于诊断内存泄漏,它只会更快地触发异常。使用内存分析器找出真正的问题。
并且请考虑这根本不是泄漏的可能性,使用垃圾收集器泄漏并不是那么容易。但这只是程序处理和存储大量数据的副作用。使用 64 位操作系统可以轻松解决这个问题,它提供了大量的虚拟内存空间,仅受页面文件最大大小的限制。不是内存。