Fer*_*Fer 8 memory memory-management uiwebview ipad
我有一个带有HTML的UIWebKit,这个HTML有几个图像和文本,但只是显示它给了我内存警告.所以我做了一些测试:相同的HTML具有不同的图像,全尺寸,并且在相同的图像之后但从原始尺寸缩小了50%,对于50%缩小的图像,我去预览并将所有图像缩小到50%
令人惊讶的部分是50%的测试,你可以看到即使有16个图像,内存峰值也是4.90MB.这真的很令人惊讶.请注意,这些值并不总是相同,它们会发生变化但测试之间没有太大差异.
在50%的问题中,在8和16张图像中,尽管内存较低,但有时会出现内存警告,但与全尺寸图像相比,性能提升显着
滚动所有文章后静止=记忆
1图片= [静止不动5MB] [旋转5.6MB]
2张图片= [静止不动6.99MB] [旋转7.7MB]
3张图片= [静止不动9.04MB] [旋转10.9MB]
4张图像= [静止不动10.89MB] [旋转13.20MB]
8张图像= [静止不动23.14MB] [旋转25.20MB](有时会崩溃)
16张图片= [静止不动27.14MB和app崩溃]
50%
1图片= [静止不动3.2MB] [旋转3.67MB]
2图片= [静止不动3.2MB] [旋转3.70MB]
3图像= [静止不动3.3MB] [旋转3.79MB]
4图像= [静止不动3.3MB] [旋转3.80MB]
8张图像= [静止不动4.29MB] [旋转4,63MB](有时会崩溃)
16张图像= [静止不动4.79MB] [旋转4,90MB](有时会崩溃)
我的问题是:该应用程序有时会崩溃16个小图像.为什么?记忆力要低得多.
内存使用的限制是什么?50%大小的图像最大值似乎不同.13.2MB适用于大图像,3.8适用于小图像.任何更高的东西有时会崩溃.这是没有意义的.
谢谢
如果您发布了正在发生的情况的崩溃日志,这将会有所帮助,因为崩溃很可能与您的内存消耗相关,而不是与您处理内存的方式相关。是的,您的图像大小可能会加剧问题,因为每个图像使用的实际内存量是根据以下公式确定大小的:
w * h * 4
Run Code Online (Sandbox Code Playgroud)
当然,假设图像是 32 位彩色图像,其中w是图像的宽度(以像素为单位),h是图像的高度(以像素为单位)。因此,1024x1024 32 位彩色图像将使用大约 4.2 MB 内存,而 512x512 32 位彩色图像将使用 1 meg。
你的崩溃报告将会说明一切。另外,在 Instruments 中的对象分配和泄漏工具下运行可能会带来巨大的洞察力(在侧窗格可见的情况下运行,它将显示您发现的任何泄漏的调用堆栈)。另请注意,如果您确实发现指向 CIOImage 之类的泄漏,那么这可能是泄漏最终发生的地方,但泄漏发生的地方几乎肯定是在您的代码中。
另外,运行 Instruments 时,请记住将其附加到设备上运行的应用程序中运行;在这种情况下,不要相信模拟市民所说的任何话。
| 归档时间: |
|
| 查看次数: |
3211 次 |
| 最近记录: |