我正在开发我的第一个 ARC 和核心数据项目,这个阶段基于 Xcode 的(通用)主从模板。我注意到 Xcode5 在 Debug Navigator 中有一个内存显示,但是在使用它时发现它的图表与运行 Leaks&Allocations 跟踪时在 Instruments 中显示的 mem 使用情况几乎没有相似之处。我已经使用模拟器(模拟 iPhone 和 iPad——以防万一“卸载”细节视图与后者产生影响)以及 iPad2 和 iPodTouch 上完成了仪器跟踪。结果大致相同:
iPhone 6.1 模拟器
- A 代--------1.13 MB
- B 代--------397.70 KB
- C一代--------76.96 KB
- D 代--------11.70 KB
- E 代--------1.56 KB
- F一代--------3.48 KB
整体增长c30%
其中 A 代显示 Master 表加载的增长,每个连续的 Generation 显示在 Detail 视图被访问 并与之交互后的增长(分别需要NSManagedObjects 的获取和NSObjects 的创建)。其他设备的增长趋势大致相似(A 代增长是 iPad sim:1.42;iPad2:1.57;iPodTouch:0.94,但类似地下降)。
然而,根据 Debug Navigator,每个点的总使用量如下:
iPhone 6.1 调试导航器
- A一代--------4.2 MB
- B一代--------6.9 MB--增长2.7
- C一代--------7.1 MB--增长0.2
- D一代--------7.8 MB--增长0.7
- E一代--------8.0 MB--增长0.2
- F一代--------8.4 MB--增长0.4
整体增长100%!
参考其他类似的问题,我没有启用僵尸。其他人是否看到过这样的差异?我倾向于相信 Instruments 而不是 Debug Navigator 的摘要图是对的吗?
PS。Debug Navigator 的摘要图在运行真实设备时似乎不可用(都在 iOS5 版本上)。这是正常的吗?