问题标签 [out-of-memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
101 浏览

visual-studio - Vista、Visual Studio 和 OutOfMemoryExceptions

我遇到了一些问题,因为我得到了 OutOfMemoryExceptions,所以 VS 无法构建。我的带有 2 GIG RAM 的 Vista 盒子在启动时使用了大约 1 Gig 的 RAM,我什至什么都没做(只是连接到工作中的网络驱动器等)

当我在几次构建后运行 Visual Studio devenv.exe 时峰值约为 730MB,我得到了错误,主要需要重新启动才能纠正。

我在 MSCONFIG 中禁用了 Aero 并停止了许多不必要的服务和应用程序。我知道 Vista 使用内存而不是臃肿有些东西,但是在刚启动后用掉我一半的内存似乎有点过分(在一些开发机器上也是如此)。

您的应用程序正在生成什么样的峰值内存,我可以做些什么来尝试否定这个问题?

0 投票
10 回答
20459 浏览

c# - 强制对数组进行垃圾回收,C#

我有一个问题,几个 3 维数组分配了大量内存,程序有时需要用更大/更小的数组替换它们并抛出 OutOfMemoryException。

示例:分配了 5 个 96MB 数组(200x200x200,每个条目 12 个字节的数据),程序需要将它们替换为 210x210x210(111MB)。它以类似于以下方式执行此操作:

其中 array1-array5 与之前使用的字段相同。这应该将旧数组设置为垃圾收集的候选对象,但似乎 GC 动作不够快,并在分配新数组之前留下分配的旧数组 - 这会导致 OOM - 而如果它们在新分配之前被释放,则空间应该是足够。

我正在寻找的是一种方法来做这样的事情:

我不确定完整的垃圾收集是否是一个好主意,因为该代码可能(在某些情况下)需要相当频繁地执行。

有没有正确的方法来做到这一点?

0 投票
3 回答
809 浏览

java - Netbeans 内存管理

我有一些 Java 代码在运行一段时间后抛出内存异常。我调查了 netbeans 分析器,当我执行一项特定操作时,Surviving Generations Metric 会上升。但是,当我重置程序状态(而不是杀死它)时,Surviving Generations Metric 不会减少。

为什么幸存的世代指标没有减少?

0 投票
6 回答
36429 浏览

java - 从大表中检索所有记录时如何避免OOM(内存不足)错误?

我的任务是将一个巨大的表转换为自定义 XML 文件。我将使用 Java 来完成这项工作。

如果我简单地发出“SELECT * FROM customer”,它可能会返回大量数据,最终导致 OOM。我想知道,有没有一种方法可以在记录可用后立即处理,然后在 sql 检索过程中从内存中删除记录?

--- 2009 年 7 月 13 日编辑

让我详细说明我的问题。我有 1 个数据库服务器和 1 个应用程序服务器。当我在应用程序中发出选择查询时,数据将从数据库服务器传输到应用程序服务器。

我相信(如果我错了,请纠正我)ResultSet 需要等到接收到查询中的所有记录。即使我们将 fetch size 设置为 4,对于 1000 条记录的表,我们最终在应用服务器的堆内存中仍然有 1000 条记录,对吗?获取大小仅影响往返数据库服务器的次数。

我的问题是,如何在它到达应用服务器后立即开始处理这 4 条(或任意数量)记录,并处理它以释放应用服务器中的内存?

0 投票
7 回答
19466 浏览

c# - 在 32 位 .NET 进程中分配超过 1,000 MB 的内存

我想知道为什么我不能在我的 32 位 .NET 进程中分配超过 1,000 MB 的内存。以下迷你应用程序在分配 1,000 MB 后引发 OutOfMemoryException。为什么是 1,000 MB,而不是 1.8 GB?我可以更改整个流程的设置吗?

PS:垃圾收集没有帮助。

编辑,澄清我想要什么:我编写了一个服务器应用程序,它在写入数据库/磁盘之前处理大量数据。我没有为所有内容创建临时文件,而是编写了一个内存缓存,这使得整个事情变得超级快。但是内存是有限的,所以我试图找出限制是什么。并且想知道为什么我的小测试程序在恰好 1,000 MB 之后抛出 OutOfMemoryException。

0 投票
3 回答
1824 浏览

java - 如何处理 Java Web Crawler 中多个线程的 OUT OF MEMORY 错误

我对编程相当陌生,并且正在为我的网络爬虫论文工作。我是由一个网络爬虫提供的,但我发现它太慢了,因为它是单线程的。爬取 1000 个网页花了 30 分钟。我尝试创建多个线程来执行,20 个线程同时运行 1000 个网页只用了 2 分钟。但是现在我遇到了“Heap Out of Memory”错误。我确定我所做的是错误的,即为 20 个线程创建了一个for循环。在不给出错误的情况下多线程 java 爬虫的正确方法是什么?说到哪,多线程是否可以解决我的问题?

0 投票
1 回答
394 浏览

out-of-memory - SandCastle 和 OutOfMemoryException

SandCastle 无法处理我们的类库,因为它在 XSL 转换期间崩溃并出现 OutOfMemoryException 异常。

除了明显的购买更多内存之外,我们能做些什么呢?问题是,这是我们的开发机器在 32 位操作系统上具有 3.3GB 内存,所以基本上我们要么升级到 64 位和更多内存(这暂时不会发生),要么设置一个虚拟服务器来使用大量内存执行此操作(这将影响生产服务器)。

我严重怀疑我们有世界上最大的需要帮助文件的类库,那么我们有什么选择呢?是否有我们忘记关闭的神奇“不要因内存不足错误而崩溃”设置?

0 投票
14 回答
321901 浏览

c# - 当仍有大量可用内存时引发“System.OutOfMemoryException”

这是我的代码:

异常:引发了“System.OutOfMemoryException”类型的异常。

我在这台机器上有 4GB 内存,当我开始运行时,有 2.5GB 可用,PC 上显然有足够的空间来处理 100000000 个随机数的 762mb。给定可用内存,我需要存储尽可能多的随机数。当我投入生产时,盒子上会有 12GB,我想利用它。

CLR 是否将我限制在默认的最大内存开始?我该如何要求更多?

更新

如果问题是由于内存碎片引起的,我认为将其分成更小的块并逐渐增加我的内存需求会有所帮助,但无论我如何调整 blockSize ,我都无法超过 256mb 的总 ArrayList 大小

从我的主要方法:

0 投票
2 回答
3410 浏览

java - 使用 BufferedImage 和 ImageIO 保存图像时内存不足问题

我想将一些 java.awt.Image 对象保存到磁盘中。但是当我尝试像:

我收到 java 堆空间错误。

我需要把

加载所有像素,以便 image.getwidth(null) 和 image.getHeight(null) 返回有效结果。

除了增加堆大小之外,还有其他方法可以做到这一点吗?

0 投票
7 回答
9240 浏览

java - 通过 iText 合并 1000 个 PDF 会引发 java.lang.OutOfMemoryError: Java heap space

我正在尝试通过 iText 合并 1000 个 PDF 文件。我不确定内存泄漏发生在哪里。下面是示例代码。请注意,一旦我合并到父文件,我就会删除子 PDF 文件。请指出下面代码中的错误,或者有没有更好的方法可以在没有内存概念的情况下做到这一点。这个过程是通过 servlet(不是独立程序)完成的