问题标签 [low-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 投票
0 回答
815 浏览

ios - IOS 应用程序在 iPhone 5 上崩溃

我正在编写一个 IOS 应用程序。它涉及大量数据下载,其中涉及 JSON 格式的图像和文本。我正在使用 NSOperation Queue 使下载过程按顺序进行。整个应用程序在 iPhone4 和 iPhone4s 中运行良好,但在 iPhone 5 中,应用程序在将数据插入数据库时​​崩溃。我有一个 API 调用,它返回大约 350 个项目。将这些记录插入数据库时​​,应用程序崩溃。

调试时我没有收到任何崩溃日志。该应用程序只是退出。但从管理器内的设备日志中,它会显示内存警告。MyApp是我的应用程序的名称。

在设备控制台中我可以看到这个

让我感到困惑的是,这只发生在 iPhone5 上。所有设备都在 IOS 7.0.4 上运行。

与以前的型号相比,iPhone 5 分配的内存是否更少?未启用添加 NSZoombies。

这里出了什么问题?

谢谢

0 投票
0 回答
806 浏览

memory-management - 什么是内核管理内存以及如何减少内存?

作为 linux 中内存管理和内存使用的新手。这个问题可能很琐碎。仍然在这里我有一些疑问。如果我错了,请建议我。

从中cat /proc/meminfo列出内存使用情况和可用性。

从这里我可以了解 Total avilabel RAM、free ram 和更多系统。从这里我可以派生内核管理内存。

Kernel Managed = MemTotal - (MemFree + Bufferes + Cached + AnonPages)

假设从 meminfo 我 hv 低于值。

内核管理 = 384.26M -(250.43M+ 1.73M+ 43.71M+71M)=17.4M

如果kernel managed memory=17.4MB.

1)这个内核管理的内存到底是什么意思?内核如何管理它使用的所有内存?

2) 是否有可能减少这个内存,例如从 17MB 到 12MB 或更少?如果可以,我该怎么做?

0 投票
1 回答
4325 浏览

node.js - 具有内存压力感知的 NodeJS 内存缓存

我来自 Java 世界,并且有很多(本地)内存缓存的实现。此外,在 Java 世界中还有SoftReferenceWeakReference,根据定义,它们是缓存实现的理想选择。

我知道 JavaScript 没有类似的东西,所以我想知道是否有可能具有某种缓存功能,如果存在“低内存压力”,它将删除/释放(所有)缓存对象。到目前为止,我知道lru-cache模块,但它的实现将对象保存到某个数量/大小,这很好,但还不够好,因为如果没有足够的内存,你自然会期望缓存释放对象.

当进程内存不足时,甚至可以从系统中获取 NodeJS 中的某些事件吗?

或者可能是一些可以引发事件的库,例如:

到目前为止,我已经找到了npm memwatchnpm 使用模块,但仍然无法将所有这些部分组合在一起。

0 投票
3 回答
3443 浏览

mysql - 无法在 linux 上启动 mysqld_safe

我已经下载了 mysql 二进制文件,我正在尝试按照此处的说明进行安装。当我尝试运行bin/mysqld_safe --user=mysql &命令时,我得到以下输出:

40211 19:04:56 mysqld_safe 记录到“/usr/local/mysql/data/irpowerweb.err”。
140211 19:04:56 mysqld_safe 使用来自 /usr/local/mysql/data 的数据库启动 mysqld 守护进程
140211 19:04:57 来自 pid 文件 /usr/local/mysql/data/irpowerweb.pid 的 mysqld_safe mysqld 结束

错误日志的内容是:

这是my.cnf

我只想让 mysql 以 w/e 方式运行。我尝试使用 安装包yum install mysql-server,下载 rpm 包,但未能启动。我选择了简单的 tar 包并开始按照上面的链接进行操作,但我又一次未能启动它。
由于错误状态Cannot allocate memory for the buffer pool,我尝试将内存减少到 64m(默认为 128m),但没有成功。我是这方面的新手,我已经做了很多搜索,还没有弄清楚如何解决这个问题。

PS 如果有帮助,我正在使用 ssh 连接到内存不足的服务器(512MB 内存,没有交换),我认为这是一个红帽 Linux。

0 投票
3 回答
1774 浏览

android - 活动因内存不足而被杀死后重新创建的片段

我有Activity一个ViewPager里面。当创建的活动asyncTask被执行并且任务完成时,Fragment使用结果数据创建一个。(重要说明:没有这个数据,Fragment创建视图将崩溃,因为它明确需要该数据)

现在Fragment创建后我回到主屏幕,打开另一个应用程序等等并创建内存不足的情况。Activity由于内存不足,我被杀死了。

现在我打开任务管理器并再次单击我的应用程序。

Android 试图将所有内容重新显示在屏幕上。由于所有Activity被杀死的数据也丢失了,但它仍然尝试重新创建片段,尽管没有数据并且我的应用程序崩溃了。

我能做什么?...我有两个解决方案(至少理论上的解决方案)

  1. 防止在恢复时重新启动活动(我该怎么做????)

  2. 防止片段创建视图使用数据,除非它存在

好吧,我确实实施了第二个解决方案。所以应用程序一开始不会崩溃,因为“不存在数据”是handeld。但我意识到 ViewPager 也与片段断开连接,因为井活动被杀死。所以我无法从活动中返回片段。

0 投票
2 回答
656 浏览

java - Viewpager 在低内存杀死时松散片段连接

在我的活动中,我使用 viewpager。我创建了两个片段并将其附加到视图寻呼机,并在我的活动中不时从这些片段调用一些方法.. 在应用程序在低内存上被杀死并且重新创建的片段存在但与 viewpager somehome 没有连接.. 我可以不调用 MyFragment.mymethod().. 它说 MyFragment 为空

. . .

0 投票
2 回答
465 浏览

android - Android:当系统重新启动我的应用程序进程时,如何保存在应用程序类中初始化的对象

在我的应用程序类中,我有一个对象,由启动器屏幕启动的所有活动使用。问题是,在内存不足的情况下,系统会自动重新启动我的应用程序(我可以在设置 -> 应用程序 -> 运行进程选项卡中看到)。由于它正在重新启动(一旦应用程序处于后台就会发生),我一直使用的对象被重置为空。

我的场景:

在我的 Launcher Activity 中,我点击 DB 并在线程中获取值并使用 Setter & Getter 我在 Application 类中设置 Object 值。

设置后,我将从那里进行四个活动 A(Launcher) -> B -> C -> D

现在我正在后台运行,我的设备在低内存中运行,此时我的进程被终止并重新启动(即在后台)。

在重新启动时,我的对象被重置为 null,现在如果我从最近列表或通过启动器启动我的应用程序,它仍然会启动我在上述情况下进入后台的最后一个 Activity,它是 Activity D,我正在访问抛出空指针的对象。

我的问题是,

  1. 当系统杀死它时,有什么方法可以在应用程序类级别保存对象(就像我们在 Activity onSaveInstanceState 中所做的那样)。
0 投票
2 回答
299 浏览

android - DevicePolicyManager 无法显式销毁

检查是否应提示用户在设备上启用 DeviceAdmin 后,我在 Activity 中启动 DevicePolicyManager。

如果用户单击“激活按钮”,将启用 deviceAdmin。

如果用户单击“取消”按钮,用户将看到一个对话框,“您需要在设备上激活设备管理员才能继续使用该应用程序”。通过单击此对话框上的“确定”,我们退出应用程序。

这可以在任何设备上按预期工作。但是,当从设置部分在设备上启用“不保留活动”时,如果用户选择“取消”DeviceAdmin 激活提示,上述行为会发生变化。当用户在提示上单击“取消”时,意图 DevicePolicyManager 会重新启动,但不会显示对话框 -“您需要在设备上激活设备管理员才能继续使用该应用程序”。有人知道为什么会这样吗?

0 投票
1 回答
164 浏览

caching - 清理低内存的 WinRT 缓存

我有一个使用许多(有时很大)图像的 WinRT 应用程序。图像存储在磁盘上,但加载图像需要一些时间,这会导致视觉中断。为了解决这个问题,我预先加载图像并将它们存储到缓存中。

但是,我有点犹豫要在内存中存储任意数量的图像,并且希望使用在内存不足时自动清理的缓存。

我将如何实施呢?在 iOS 上有一种didReceiveMemoryWarning方法,但我找不到 WinRT 的等效方法。

0 投票
0 回答
205 浏览

ios7 - 使用 NSURLSession 在后台下载多个文件时处理内存压力

我正在使用 NSURLSession 在后台下载 50-60MB [大约 40-50] 的视频文件。有时我收到内存不足消息和应用程序崩溃,我无法访问任何应用程序。有没有办法处理这个问题?