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