gpt4 book ai didi

iphone - 使用 VM 跟踪器进行 iOS 分析。脏内存和常驻内存导致内存警告,怎么办?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:28 26 4
gpt4 key购买 nike


大家好,我正在尝试调试我没有做的。这个应用程序在线运行并缓存文件系统上的所有内容,将所有路径(很多路径)保存在内存中(我看到了错误的方法,但我必须努力)。这个应用程序有一个选项,可以下载所有内容并用相对路径填充内存。
问题是,当我选中这个选项时,应用程序开始下载和缓存,但在完成之前它崩溃了。在模拟器上当然一切正常。
崩溃报告日志讨论了内存警告和被 jetsam 杀死的应用程序。通过在仪器上分配来跟踪应用程序,我发现事件字节“仅”在 7Mb 左右,这也得益于使用下载期间添加的刷新机制,该机制在下载完成后释放旧路径。
根本没有可见的泄漏。
我开始使用 VMTracker,我发现常驻内存和脏内存非常高,峰值约为 61Mb 和 21Mb。有些东西我没有得到。
我已经阅读了很多关于它的问题
What do "Dirty" and "Resident" mean in relation to Virtual Memory?
How can I get rid of resident dirty memory in Objective-C?
但是因为我释放了其他脏内存来自的大部分路径?我该如何清洁它?
谢谢,
安德里亚

最佳答案

好吧,我想找到了一个解决方案......在进行各种测试后我发现连接可能正在缓存一些东西。所以我将 NSURLCache 设置为 0byte。我的应用程序现在运行时似乎只有很少的脏内存,几乎一半。一个很大的改进。这是惊人的两行代码。

[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];

正如我在一些teck talks of Apple所说的脏内存也可以代表数据缓存,我仍然没有尝试在URL请求中设置缓存策略,但可能效果是一样的。

希望能帮助到别人。

关于iphone - 使用 VM 跟踪器进行 iOS 分析。脏内存和常驻内存导致内存警告,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com