【问题标题】:iOS analysis with VM tracker. Dirty and resident memory cause memory warnings, what should I do?使用 VM 跟踪器进行 iOS 分析。脏和常驻内存导致内存警告,我该怎么办?
【发布时间】:2011-12-24 06:02:05
【问题描述】:


大家好, 我正在尝试调试我没有制作的东西。这个应用程序可以在线运行并缓存文件系统上的所有内容,并将所有路径(很多路径)保存在内存中(我看到了错误的方法,但我必须努力)。这个应用程序有一个选项,可以下载所有内容并用相对路径填充内存。
问题是,当我选中此选项时,应用程序开始下载和缓存,但在完成之前它崩溃了。当然,在模拟器上一切正常。
崩溃报告日志讨论了内存警告和被 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?
但是,由于我正在释放其他脏内存来自哪里创建的大部分路径?我该如何清洁它?
谢谢,
安德烈亚

【问题讨论】:

    标签: iphone ios memory memory-management memory-warning


    【解决方案1】:

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

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

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

    希望能帮助到别人。

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2011-09-18
      • 2011-04-30
      • 1970-01-01
      • 2015-04-26
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多