问题标签 [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 回答
1872 浏览

linux - 《OOM杀手》之后,还有《复活者》吗?

我知道在 Linux 上有一个称为“OOM Killer”的内核功能。当 OOM (Out-Of-Memory)情况消退时,是否有“进程复活”之类的东西?

我知道由于各种原因,这个功能很难实现,但是有什么可以接近它的吗?

编辑: 示例:“Resurrector”将保证有一块内存用于存储一组有限的进程信息(例如命令行、环境等)(即不是整个进程代码和数据!)。一旦 OOM 条件被清除,“Resurrector”可以通过列表并“复活”一些进程。

从我收集到现在,似乎没有类似于我所要求的功能。

0 投票
13 回答
115656 浏览

android - java.lang.OutOfMemoryError:位图大小超出 VM 预算 - Android

我开发了一个在 Android 上使用大量图像的应用程序。

应用程序运行一次,在屏幕上填充信息(LayoutsListviewsTextviewsImageViews等),然后用户读取信息。

没有动画,没有特效或任何可以填满记忆的东西。有时drawables可以改变。有些是 android 资源,有些是保存在 SDCARD 文件夹中的文件。

然后用户退出(该onDestroy方法被执行并且应用程序由 VM 留在内存中),然后在某个时候用户再次进入。

每次用户进入应用程序时,我都可以看到内存越来越多,直到用户获得java.lang.OutOfMemoryError.

那么处理许多图像的最佳/正确方法是什么?

我应该把它们放在静态方法中,这样它们就不会一直加载吗?我是否必须以特殊方式清理布局或布局中使用的图像?

0 投票
5 回答
25143 浏览

android - BitmapFactory OOM driving me nuts

I've been doing a lot of searching and I know a lot of other people are experiencing the same OOM memory problems with BitmapFactory. My app only shows a total memory available of 4MB using Runtime.getRuntime ().totalMemory(). If the limit is 16MB, then why doesn't the total memory grow to make room for the bitmap? Instead it throws an error.

I also don't understand that if I have 1.6MB of free memory according to Runtime.getRuntime().freeMemory() why do I get an error saying "VM won't let us allocate 614400 bytes"? Seems to me I have plenty available memory.

My app is complete except for this problem, which goes away when I reboot the phone so that my app is the only thing running. I'm using an HTC Hero for device testing (Android 1.5).

At this point I'm thinking the only way around this is to somehow avoid using BitmapFactory.

Anyone have any ideas on this or an explanation as to why VM won't allocate 614KB when there's 1.6MB of free memory?

0 投票
2 回答
6307 浏览

java - 构建 Apache FOP 时系统资源不足

当尝试在命令行上通过 ant 构建 Apache FOP 时,它会抱怨:

我不明白。我有足够的内存,系统怎么会耗尽资源?

0 投票
4 回答
2338 浏览

.net - OutOfMemoryException when I hit 1GB

Does anyone know why I would get an OutOfMemoryException when TaskMgr.exe says my process is only taking up ~1GB of memory?

0 投票
3 回答
7649 浏览

java - main java.lang.OutOfMemoryError:Java 堆空间

我的代码正在做这样的事情:

即它在每次迭代的for循环内创建一个新变量。

这可能是内存不足问题的原因吗?

Netbeans 报错:

Upate 这是一个 java 控制台应用程序,整个应用程序基本上是在 forloop 中运行的。

0 投票
3 回答
513 浏览

memory-management - 关于解决 CF 的 OutOfMemoryExceptions 的建议

我的 CF 应用程序有一个非常定制的 UI,使用大量图像作为 UI 元素。当这些位图保存在内存中时,用户界面感觉更加流畅。当它们按需加载时,UI很慢,我可以看到按钮一个一个出现,看起来很糟糕。很长一段时间以来,这一切都很好,但最近我发现该应用程序几乎使用了它可以获得的所有内存,即 32MB iirc。然后我开始使用远程性能监视器来查看是否可以找到任何清晰的内存占用。

事实证明,使用 RPM 获取有用的 GC 堆快照很难:在我可能收到内存不足异常之前关闭,请求快照会导致立即抛出本机异常。不过,我可以偶尔找到一个 GC 快照。我在这里保存了一个:http: //files.zzattack.org/misc/ramis.gclog和屏幕截图:http: //files.zzattack.org/images/ramisgcsnapshot.png 对我来说,它看起来并不那么麻烦,到目前为止,最大的对象是一个包含我的资源文件的字节数组(大约 3MB 的 PNG 图像)。总共使用了 3643304b(约 3.5MB)的内存。这些图像以大约 20 种不同的形式分布在 UI 元素上。我不知道单独的线程对内存使用有什么影响,但大约有 5-6 个线程同时运行,其中至少 4 个在 95% 的时间处于阻塞状态。

在程序中,当我尝试下载 2MB 的 gzip 压缩文件时,我总是会收到 OutOfMemoryException。当我调用 GC.GetTotalMemory(false) 时,我发现我确实在尝试分配比当前可用更多的内存。调用 GC.Collect 并再次尝试也不能“解决”/推迟我的问题。

我想要一些关于如何解决我的问题的建议。我绝对想要内存中的位图,但也许我可以限制位图可用的插槽数量,只在内存中保留最常用的插槽并按需加载其他插槽。这可能是一个长镜头,但也许我可以请求操作系统为我保留更多内存?我确信该应用程序只能在具有足够可用 RAM 的设备上运行。任何帮助表示赞赏,在此先感谢。

0 投票
2 回答
7812 浏览

maven-2 - Maven Cobertura OutOfMemoryError

我正在使用 Maven site:run 生成 cobertura 代码覆盖率...

以下是我对 cobertura 的 pom.xml 配置:

但是,我在站点末尾收到 OutOfMemoryError:运行。请建议如何摆脱这个错误。(我已经尝试了所有这些 -Xmx、-XX 选项......)

0 投票
1 回答
779 浏览

wpf - 带有 Clipboard.GetData 和 PRTSC 的 OutOfMemoryException

我在用着 :

在我的电脑上,一切正常。在另一台计算机上,我得到了 OutOfMemoryException。为什么 ?如何解决?

提前感谢您的回答

0 投票
5 回答
6350 浏览

java - 列出目录中的文件时出现 OutOfMemory

当我使用 Java 列出具有 300,000 个文件的目录的文件时,会发生内存不足。

我想要的是一种可以增量列出目录的所有文件的方法,无论该特定目录中有多少文件,并且默认的 64M 堆限制不会出现“内存不足”问题。

我有一段时间谷歌了,在纯 Java 中找不到这样的方法。
请帮我!!

注意,JNI 是一种可能的解决方案,但我讨厌 JNI。