解析JSON时Swift的内存开销是多少(但一般情况下也是如此)?

时间:2017-09-29 15:45:09

标签: swift memory-management automatic-ref-counting memory-overhead

我在Swift中有this合理标准的ADT,我用它来解析一些JSON数据,从各方面看,它们看起来非常像那些数据结构。 JSON文件表示一个大约155k个对象的数组,这些对象被解析为相应的[LogRow]

现在,我完全清楚与纯文本表示(如JSON)相比会有一些开销,但我发现大约500 MB的JSON文件最终占用了我的5.5 GB计算机的记忆 - 在我的书中,这是10倍的开销,除非我遗漏了什么。

我浏览过Xcode的分析器,但我看不到任何内存泄漏。我甚至小心翼翼地把数据和解码器都放到var中,所以我可以把它们弄清楚并轻推ARC,但这似乎不能很好地工作,因为我认为我正在创建负载指针到处都是,所以几乎没有任何东西被解除分配。

我的代码经过Swift认证的人比我更专业,他们都认为代码没问题,而且开销很大。任何人都可以指向我关于对象模型的内存需求的任何文档。

编辑作为参考,这是我在仪器中看到的内容。最后,当源文件被释放时,他会略微下降(我将它完全预先分配在一个字符串中,然后再传递给JSONDecoder

Instruments, allocations and (no) leaks.

0 个答案:

没有答案