- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在开发一个内容非常丰富的应用程序时遇到了问题。我正在使用 SDWebImage 将图像异步缓存和加载到我的 UIImageViews 和 UIButtons(如果适用)。在这个应用程序中,我有内容提要,它们是从服务器 URL 加载的 3 列宽图片的 Collection View 。
当我滚动时,内存像疯了一样累积,但在需要时会自行清除,这是 SDWebImage 的预期行为。但是,此应用程序是一个选项卡式应用程序,因此如果我部分滚动浏览一个提要,切换选项卡并滚动浏览另一个选项卡上的提要 - 内存只是建立而不会被清除。
我知道的第一个问题是图像尺寸非常大并且在应用程序内按比例缩小而不是以 100x100 PX 的正确尺寸下载,而是 640x640 像素。这显然会被修复,因为每个图像在整个应用程序中的各种显示都需要多种尺寸,这会降低 VM 的增长速度,但我不相信它会解决内存最终达到的潜在问题浏览不同页面时应用程序崩溃的关键点。
我注意到像 Wanelo、Path 和 Facebook 这样的应用程序都有无限的信息流,其中包含大量内容,可以无限期地滚动和加载,而不会在崩溃时造成任何明显的性能损失,他们是怎么做到的?
我还包含了一段视频,其中包含我使用工具中的分配模板分析我的应用程序的注释。我可以正常阅读信息,但我不确定在分配/调用堆栈等方面我是否遗漏了什么可能会引导我朝着正确的方向解决这个问题。
此处提供分析视频:http://youtu.be/J4zici41TMs
最佳答案
如果你看到 SDWebImage 是异步加载图像的最优化方式。您说您正在开发基于选项卡的应用,但有时您的应用会崩溃。
基本上 SDwebImage 下载图像并将它们保存在缓存内存中(以加快速度)并在本地保存图像。每当您从一个选项卡移动到另一个选项卡时,您都可以强制清除缓存。这可能对你有帮助。
当你切换到不同的标签时,试试下面的代码。
[[[SDWebImageManager sharedManager] imageCache] clearMemory];
此外,为了了解其他缓存 api,您可以检查这个。我将永远喜欢 SDWebImage,因为它真的又好又快。 link .
希望对您有所帮助。快乐编码:)
关于ios - SDWebImage 疯狂的内存增长,高虚拟内存?高脏内存大小。附视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901070/
Android 似乎真的不喜欢invalidate (Rect dirty),它用于仅使 Canvas 的一部分无效。当我使 Canvas 的一部分(下面以绿色显示)无效并且需要同时重绘 Canvas
来自 Leoliger 2ed 的 Git 版本控制, After you commit the addition of the new file into the repository, git s
我使用基本的 Valgrind 工具时出现了意外行为。对于基本 block 的每个 Put 语句,我使用以下方法注册一个脏助手unsafeIRDirty_0_N。问题是脏助手被调用的次数比预期的多,例
我想知道是否有人可以告诉我 hibernate 脏 session 是什么?我似乎遇到了一个问题,条件查询在不应该执行插入时执行了插入。我相信这与脏 session 有关,但在不真正了解脏 sessi
我正在尝试构建一个用于通用添加标签的 ADF 映射数据流 - 其目的是查看特定列中的值并将其替换为标签。我已经有了如下所示的数据集(表 B): enter image description here
我需要在刷新所有更改的实体之前编写一些业务逻辑。我尝试过的解决方案之一是 IPreUpdateEventListener。但是这个事件监听器已经将对象非规范化为键值。我需要在非规范化甚至刷新之前的一些
基于此help link我能够实现颜色更改,但在此解决方案中,它将颜色应用于整行,这不是我想要的。 我想更改唯一编辑过的单元格的颜色。如果有人有任何想法,请分享。谢谢。 最佳答案 这是一个带有您想要的
我想做什么? 我正在尝试反编译一个 apk 文件,修改它并重新编译它。 我的工作环境是什么? root@l0calh0st:~/Desktop/APKS/Projects# uname -a Linu
“ps”和“top”等工具报告各种内存使用情况,例如 VM 大小和驻留集大小。但是,这些都不是“真正的”内存使用情况: 程序代码在同一程序的多个实例之间共享。 共享库程序代码在使用该库的所有进程之间共
Martin Fowler说我们应该在添加新功能之前进行重构(假设原始程序结构不佳)。 所以我们都想重构这个脏代码库,这是肯定的。我们还知道,如果没有单元测试代码,就很容易引入细微的错误。 但这是一个
在开始开发一些实验性的东西之前,我创建了一个新分支。我通常会忘记这一点(这不是问题),但现在我事先做了。 从那以后,我更新了 3 个文件。 在 2 中只是我不想提交到安全分支的实验性更改。 在 1 中
这是代码的精简版本: gridDataSource = new kendo.data.DataSource({ batch: true, transport: {
内容: 我正在使用azure广告构建一个简单的登录应用程序,该应用程序可以正常登录并获取 token ,然后可以重定向到下一页,但是在重定向之前会引发错误 错误: The following _Typ
我想将我的摘要字段设置为 body 字段的清理版本,但前提是用户不提供他们自己的摘要,即。 params[:document][:summary] 为空。 如果我创建一个新记录,这似乎工作正常,如果我
我正在使用乐观锁定来防止人们在竞争条件下覆盖彼此的变化。 因为我从 5.1 升级了 Rails至 5.2 ,我的规范坏了,我将其追溯到 changes 中的事实。数组,与文件上传相关的更改不再Uplo
我似乎无法解决这个问题,所以如果有人可以帮助我,请您坚持一下! import 'dart:async'; import 'dart:convert'; import 'package:http/htt
我是一名优秀的程序员,十分优秀!