【问题标题】:Continuous allocation of 500kb from libBacktraceRecording.dylib从 libBacktraceRecording.dylib 连续分配 500kb
【发布时间】:2016-04-18 17:08:38
【问题描述】:

我目前正在开发的 iOS 应用程序有问题。

在运行应用程序时,我不断有大约 500kb 的神秘分配。

我使用工具来追踪这些分配,但结果超出了我的知识范围。

所以仪器结果看起来像这样:

如您所见,它在持续增长。每个“世代”显示大约 500-600kb 的增长。

当我查看生成时,我看到分配的内存转到VM: Performance tool data

如果我深入了解,我会发现负责的库是 libBacktraceRecording.dylib

然后,如果我想检查代码中负责分配的位置,有时我会看到与 GCD 相关的调用:

有时我会得到某种与我的代码没有直接关系的Stack Trace

这些分配的原因可能是什么? 这不是很大,这些 500-600 kb,但随着一段时间后它不断增长,这让我有点担心。 据我了解,这些分配可能不是由我引起的,而是由某种 xCode 性能监控工具或类似的东西引起的。但这是真的吗? 为什么它会无限增长?

【问题讨论】:

    标签: ios objective-c xcode memory memory-management


    【解决方案1】:

    GMSPhoenixRenderer 是谷歌地图渲染引擎。它很可能正在收集与性能相关的统计数据,或者如您所说,它是 iOS 开发工具代表它这样做。

    您必须查看 GM* API 以查看是否有某种方法可以禁用此功能。我怀疑它只在 DEBUG 版本中打开。

    【讨论】:

    • 其实是的,你是对的。昨天我发现它是xcode所谓的“队列调试”,它自动包含在调试构建中。您可以在项目的方案编辑器中禁用它,只需取消选中“选项选项卡”下的“启用回溯记录”即可。谢谢你的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 2011-11-04
    • 2016-01-31
    • 2014-10-29
    • 2012-07-03
    相关资源
    最近更新 更多