2016-01-13 110 views
0

我目前正在开发的iOS应用程序中存在问题。从libBacktraceRecording.dylib连续分配500kb

在运行应用程序时,我一直有〜500kb的神秘分配。

我用仪器来追踪这些分配,但结果高于我的知识水平。

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

The results of Instruments Allocations tool

正如你可以看到有连续的增长。每个“代”显示约500-600kb的增长。

当我凝视代我看到分配的内存去VM: Performance tool data

Insides of Generation B

如果我去更深里面我看到负责图书馆libBacktraceRecording.dylib

Deeper insides of Generation B

然后,如果我想检查我的代码中负责分配的地方,有时我会看到与有关的呼叫10:

Allocation in GCD

有时我得到某种Stack Trace不直接涉及到我的代码:

Stack Trace

什么能这些分配的原因是什么? 这是500-600 kb的数额不大,但随着它在一段时间后不断增长,它让我很担心。 据我所知,这些分配可能不是由我造成的,而是由某种xCode性能监视工具或类似的东西造成的。但是这是真的吗? 为什么它保持无限增长?

回答

1

GMSPhoenixRenderer是Google Maps渲染引擎。更有可能的是,它正在收集与性能相关的统计数据,或者正如你所说,它是代表它开发的iOS开发工具。

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

+0

其实是的,你是对的。昨天我发现它是xcode所谓的“队列调试”,它自动包含在调试版本中。您可以在项目的方案编辑器中将其禁用,只需在“选项卡”下取消选中“启用回溯记录”即可。感谢您的建议。 – hockeyman