XCode 5 调试导航器内存与仪器不一致

2023-12-15

我正在开发我的第一个 ARC 和核心数据项目,此阶段基于 Xcode 的(通用)主从模板。 我注意到 Xcode5 在调试导航器中显示了内存,但在使用它时发现它的图表与运行 Leaks&Allocations 跟踪时在 Instruments 中显示的内存使用情况几乎没有相似之处。 我已经使用模拟器(模拟 iPhone 和 iPad - 以防“卸载”细节视图与后者产生差异)以及在 iPad2 和 iPodTouch 上完成了乐器跟踪。结果大致相同:

iPhone 6.1模拟器

  1. A代--------1.13 MB
  2. B 代--------397.70 KB
  3. C 代--------76.96 KB
  4. D 代--------11.70 KB
  5. E代--------1.56 KB
  6. F代--------3.48 KB

整体增长约30%

其中 Generation A 显示主表加载的增长,每个连续的 Generation 显示详细信息视图加载后的增长visited and 互动过(涉及到获取 NSManagedObjectNSObject 的创建, 分别)。 其他设备的增长趋势大致相似(A 代设备的增长为 iPad sim:1.42;iPad2:1.57;iPodTouch:0.94,但同样呈下降趋势)。

然而,根据调试导航器,total每个点的使用情况如下:

iPhone 6.1 调试导航器

  1. A代--------4.2 MB
  2. B代--------6.9 MB--增长2.7
  3. C代--------7.1 MB--增长0.2
  4. D代--------7.8 MB--增长0.7
  5. E代--------8.0 MB--增长0.2
  6. F代--------8.4 MB--增长0.4
    整体增长100%!

参考其他类似的问题,我没有启用僵尸。 其他人看到过这样的差异吗?我是否更倾向于相信仪器而不是调试导航器的摘要图?

附言。在运行真实设备(均在 iOS5 版本上)时,调试导航器的摘要图似乎不可用。这是正常的吗?


这对你来说可能不是一个很好的答案,但这是我通过我所做的研究来证明这个问题的理由。

调试导航器显示与“活动监视器”仪器相同的内容。它不显示您的应用程序当前分配的内存,而是显示操作系统允许您的应用程序使用的当前内存。

假设我创建了一个 for 循环来在内存中创建大量对象,但随后我删除了其中一半,因为它们不符合我的搜索条件(我知道编码很糟糕,但这里是假设的)。操作系统会从您的应用程序收到完整内存的请求来创建所有对象,但在循环之后,当您检查仪器中的分配时,它仅显示已保存的对象,因为垃圾收集删除了已删除的对象。操作系统可能知道也可能不知道垃圾收集事件,但它不会占用它刚刚释放给您的内存。我不确定从应用程序中提供/获取可用内存的开销,但我确信他们会考虑到这一点。我注意到,如果我将应用程序放置足够长的时间,操作系统就会收回一些我没有使用的内存。

只需将调试内存信息视为操作系统分配的应用程序的完整内存即可。您可能没有使用所有这些,但操作系统无论如何都会将其提供给您(出于某种原因)。此数字将根据您的应用程序的请求/使用情况而增加。由于内存压力警告或操作系统认为它可以安全地从您那里恢复内存的不活动,它会减少。它可能永远不会匹配仪器分配的内存信息,因为应用程序中总是使用瞬态内存,需要在某个地方分配,即使是很短的时间。

再说一次,这是我的结论,基于当我想知道你也有同样的事情时。希望有一点帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XCode 5 调试导航器内存与仪器不一致 的相关文章

  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图
  • iOS - 当 UIView 移动时将 UITextField 移动到不同的位置

    我有一个主 UIView 它通过开关向上移动 我有这个工作 那里没有问题 现在 UIView 当向下时 占据屏幕的大约一半 当它向上推时 它会显示底部 40px 在 UIView 中 当它处于向下状态时 它有一个 UITextField 并
  • 在 IOS 上使用 AVComposition 混合两个音频文件

    我正在尝试混合两个音频文件 将一个音频文件放在另一个音频文件之上 不是缝合在一起 但我在 IOS 上学习 AVFoundation 时遇到了困难 我在这里遵循了这个答案 如何使用 AVMutableCompositionTrack 合并音频
  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • iPhone UINavigationBar 使用 [UINavigationBar 外观] 更改所有控制器的字体样式

    我知道我可以单独更改导航栏的字体 如本答案所述 更改导航栏的字体 https stackoverflow com questions 5832036 change the navigation bars font 目前我正在使用一种更全局的
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 如何在 iOS 中更改部分透明图像的颜色?

    我有一个具有部分透明度的单色图像 我有正常版本和 2X 版本的图像 我希望能够用代码将图像着色为不同的颜色 下面的代码适用于普通图像 但 2X 最终会出现伪影 正常图像可能有类似的问题如果是这样 由于分辨率的原因我无法检测到它 UIImag
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • iOS 滚动视图允许滚动过去的内容

    我正在努力优化我的应用程序以适应横向和较小的屏幕 我主要使用滚动视图来实现这一点 在我的其中一个视图中 我有一个容器视图 当我在故事板中的设备之间切换时 这个容器视图看起来很完美 容器视图映射到具有滚动视图的视图控制器 该滚动视图的顶部 底
  • iOS 中的构建对象文件扩展名是什么?

    当我在项目中构建java对象类时 将创建带有 class扩展名的构建文件 并且人类不可读 快速构建文件怎么样 example car java gt build gt car class 构建后会是什么 car swift gt build
  • 以编程方式触发iOS摇动事件

    如何以编程方式触发 iOS 中的摇动事件 我尝试过以下方法 但它总是崩溃 void shake NSLog TEST UIMotionEventProxy m NSClassFromString UIMotionEvent alloc in
  • iOS:提高图像绘制速度

    我有一系列想要制作动画的图像 UIImageView支持一些基本的动画 但不足以满足我的需求 我的第一个方法是使用UIImageView并设置image当图像属性 这太慢了 速度慢的原因是图像的绘制 这让我感到惊讶 我以为瓶颈会加载图像 我
  • iphone NSDate 转换问题

    在我的 facebook 图表 Api 中 我正在获取这些数据 来自杰森 updated time 2011 05 17T14 52 16 0000 我正在使用此代码将其转换为有效的日期格式 NSDateFormatter df NSDat
  • 检测 AvPlayer 何时切换比特率

    在我的应用程序中 我使用 AVPlayer 通过 HLS 协议读取一些流 m3u8 文件 我需要知道在流会话期间 客户端切换比特率多少次 我们假设客户端的带宽正在增加 因此客户端将切换到更高比特率的段 AVPlayer能检测到这个开关吗 T
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • Google 地图 API -> OpenGLES 崩溃

    日志是从 Crashlytics 粘贴的 对于许多用户来说 崩溃经常发生 据我所知 它与设备 iOS 版本无关 我在我的代码中找不到任何错误 这似乎是纯粹的库问题 是 Google 地图 API 错误吗 我可以做些什么来修复它 或者我应该在
  • WhatsApp 显示警告“此项目无法共享。请选择其他项目。”对于 iOS 应用程序。

    我正在开发一个 iOS 应用程序 在该应用程序中 我有社交共享功能 并且社交共享功能使用深度链接来共享 URL 该网址共享对于所有应用程序都运行良好 除了WhatsApp 它会显示一个警报弹出窗口 此项目无法共享 请选择其他项目 以下是我的
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController

随机推荐