【发布时间】:2015-01-12 05:33:43
【问题描述】:
我有一个 Parse 拒绝让我保存的对象,因为它有 128kB 的限制...跟随这个方便的 SO 帖子:Checking the size of an object in Objective-C,我能够将我的对象的大小输出为 144( malloc_size 没有具体说明它的单位,但我假设是字节)。如果这是以 kB 为单位,我的对象确实超过了 128kB 的限制。然而,这个对象永远不应该在 kB 范围内——它是两个指针和三个 NSNumber(用作布尔值)......即使在 64 位系统上考虑到对象开销和过度分配,我们仍然在 200 字节范围——使用 Parse 的开销,我们会说 1kB 是安全的。仍然...远小于 128kB。
具体错误为:Error: The object is too large -- should be less than 128 kB. (Code: 116, Version: 1.5.0)
这让我开始思考——有什么好的测试工具或日志语句来调试这类问题?我最熟悉 Apple 包含的分析器和标准 C/C++ 工具(如 Valgrind),但我不确定特定对象上的内存自省来判断哪个属性占用了它的 RAM...
更具体到上面列出的项目——Parse 使用了什么样的技巧,使得三个 NSNumber 和两个指针在保存时占用 128kB,我该如何调试?
【问题讨论】:
标签: ios objective-c memory parse-platform memory-profiling