问题标签 [memory-pressure]

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 投票
1 回答
1396 浏览

ios - 在 uiwebview 中渲染 svg 会导致内存压力(和应用程序崩溃)

我正在研究类似于此示例的“交互式地图” 。我需要能够放大地图并仍然获得清晰的插图,因此地图的绘制是在 svg 中完成的(它实际上是在 Illustrator 中创建的,然后保存为 svg 文件)。

在应用程序中,我创建了一个 UIWebView 并加载了包含 svg 的 html。HTML 文件是应用程序中的捆绑资源,因此没有网络延迟。有一些可点击的形状,当您点击它们时,它会将您带到另一个地图(另一个带有 svg 绘图的 html 页面)。

其中一个 svg 相当大(~5.8MB)。加载时,我收到“内存压力”警告,然后崩溃。Instruments 显示崩溃时虚拟内存为 298.71MB,实内存为 149.10MB。

我已经简化了绘图(我取出了一些细节),并且我还使用了@Peter Collingridge svg optimizer

如何优化内存使用使其不会崩溃?

0 投票
1 回答
1433 浏览

ios - 使用 iOS AVPlayer 时因内存压力而终止

在我的 iOS 应用程序中,我在iOS YouTube helper library的帮助下将 YouTube 视频作为循环运行。但我没有机会完整播放视频,但 20 秒后,我再次将同一视频排入队列,如下所示。

这就像我想要的那样完美。

接下来我想在 YouTube 每次重播视频之前播放 mp4 文件。为了实现这一点,我使用了AVPlayer。然后代码已更改如下。

进行上述更改后,应用程序按我的预期运行,但运行近四分钟后,它在我的 Xcode 和应用程序崩溃中出现“由于内存压力而终止”弹出窗口。我使用 Instruments 开发者工具检查了内存,应用程序在崩溃时使用了近 35 MB 的内存。当应用程序开始运行时,它使用了超过 45 MB 的内存并且运行平稳。

如您所见,我仅在需要时创建 AVPlayer 并在完成工作后将其设置为零。这个问题可能是什么原因,我该如何解决这个问题?

0 投票
1 回答
153 浏览

ios - iPad绘图应用程序的内存压力问题-问题仅出现在实际iPad上-不在模拟器上

我正在创建一个基本的绘图应用程序;我认为一切都很好并且可以正常工作,直到我在实际设备上对其进行了测试。在 iPad mini 上使用时,我绘图时遇到内存压力崩溃,在模拟器上我没有这样的问题。这很奇怪,因为我可以在实际设备上绘图时看到内存使用量猛增,但在模拟器上无法重现相同的现象。下面我发布了我用来绘制的代码。你看到这里有什么会导致这种情况的吗?我怎样才能减少内存使用?谢谢你。

0 投票
1 回答
549 浏览

xcode - UIWebView 应用程序因内存压力而崩溃

我在 tableview 中加载一个 webView。

并在 webView 中加载了 html 字符串,如下所示:

我需要根据 Web 视图偏移高度设置 TableView 行高。我能够做到这一点,如下所示:

}

它工作正常,但是当 [heighttmp intValue] 超过 50,000 的限制时,我的应用程序意外退出导致内存压力。可能是什么原因?有什么解决办法吗?

0 投票
1 回答
442 浏览

virtual-memory - 了解负虚拟内存压力

我正在重新阅读 Poul-Henning Kamp 的论文,题为“你做错了”,其中一张图表让我感到困惑。

图 1 的 x 轴标记为“以兆字节为单位的 VM 压力”。作者将 x 轴澄清为“以不驻留在主内存中的地址空间量来衡量,因为内核将其分页到辅助存储”。

我可以理解 0 MB 的 VM 压力(所有地址空间都驻留在主内存中)。

我可以理解一个正的 VM 压力,但我很难想象负 8 兆字节的 VM 压力是什么样的(参见图 1 x 轴的左侧)。在作者的描述中加上负 8 后,我会得到“- 8 MB 的地址空间不驻留在主内存中”。这对我来说没有意义。

如果我只是断定作者不小心否定了正数,图表更有意义,但我还没有准备好断定作者犯了错误。更有可能是我。但是随着压力的降低,运行时间会增加吗?这听起来违反直觉。

我也不确定为什么 -8 MB 的 VM 内存压力曲线会发生巨大变化。

提前致谢!</p>

0 投票
2 回答
1175 浏览

ios - 使用 AFNetworking 下载多个文件时出现内存压力问题

在我的应用程序中,我尝试下载数千张图像(每个图像大小最大为 3mb)和 10 个视频(每个视频大小最大为 100mb)并将其保存在文档目录中。

为了实现这一点,我正在使用 AFNetworking

在这里,我的问题是,当我使用慢速 wifi(大约 4mbps)时,我成功获取了所有数据,但是如果我在100mbps的 wifi 下进行相同的下载,则应用程序在下载图像和内存时收到内存警告下载视频时出现压力问题,然后应用程序崩溃

上面的代码我根据我必须下载的视频和图像的数量循环

这种行为背后的原因是什么

我什至有两种场景的内存分配屏幕截图

请帮忙

添加用于保存下载图像的代码

0 投票
0 回答
132 浏览

ios - EXC_BAD_ACCESS 并因内存压力而终止

我的应用程序因 EXC_BAD_ACCESS 消息而崩溃。我启用了 NSZombie 对象,但这会导致“因内存压力而终止”错误——即使在调试模式下也是如此。

我还看到了视频http://www.markj.net/iphone-memory-debug-nszombie/,但我使用的是 Xcode 6.0.1 并且它在 Instruments 中没有任何选项,如视频中所示启用僵尸从那里。

我启用了异常断点。

有没有其他方法可以处理 EXC_BAD_ACCESS,或者我遗漏的任何东西?

0 投票
3 回答
988 浏览

ios - 将 UIImage 数据上传到服务器会出现内存峰值?

我正在尝试将图像数据上传到服务器,它已成功上传,但每次上传图像时都会出现内存峰值。还上传了 20 多张图片,让 App 关闭并收到内存警告。 UIImage 数据内存峰值

如何解决这个问题?

在此处输入图像描述

编辑: 我正在使用 NSURLConnection。

0 投票
2 回答
947 浏览

ios - 如何在上传前在 iOS 共享扩展中缩小图像

我正在构建一个共享扩展,我需要将大照片缩放到更小的尺寸,然后再上传到我的共享扩展中。

我正在使用如何在保持其纵横比的同时调整 UIImage 大小的代码:

但是,当我尝试从我的照片库中缩小一张大图像(在本例中为 5415x3610,使用 DSLR 拍摄)时,它会因内存压力而崩溃。虽然这似乎是一个极端情况,但我的应用程序高度依赖 iOS 共享扩展来共享来自非 iPhone 来源的照片,例如来自相机的高分辨率照片。

显然,不按比例上传 20MP/8MB 照片不是一种选择。如何以更少的内存使用来缩小它?

0 投票
1 回答
3292 浏览

ios - 如何响应来自 GCD 的内存压力通知?

我正在使用 GCD 来获取内存压力通知。

GCD 文档描述了一些常量,如下所示:

DISPATCH_MEMORYPRESSURE_WARN

系统内存压力状况处于警告阶段。应用程序应该释放他们现在不需要的内存。

DISPATCH_MEMORYPRESSURE_CRITICAL

系统内存压力情况处于临界阶段。应用程序应该尽可能多地释放内存。

我应该释放未使用的内存似乎是合乎逻辑的。但是,在其他地方(手册页源代码)我发现这个注释与这些常量相关:

内存压力升高是系统范围的条件,为此源注册的应用程序应通过更改其未来的内存使用行为来做出反应,例如通过减少新启动操作的缓存大小直到内存压力恢复正常。

但是,当系统系统内存压力进入升高状态时,应用程序不应遍历和丢弃过去操作的现有缓存,因为这可能会触发 VM 操作,从而进一步加剧系统内存压力。

这让我很困惑。那么我应该释放内存,还是应该停止分配新内存?