ios - Xcode 中分配检测模板中持久和 transient 列的真正含义

标签 ios objective-c xcode swift xcode-instruments

我想了解 分配模板transientpersistent 列的含义。来自教程 http://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started我已经找到 "持久性列保留内存中当前存在的每种类型的对象数。 transient 列显示已存在但已被释放的对象数。持久性对象正在耗尽内存, transient 对象释放了他们的内存。enter image description here

根据上面的解释,从图中选中的Statistics表中的行可以看出,当前内存中存在2个NSFileManager的对象和19个。的对象已创建并已被释放。

但这对 iOS 应用程序的优化或性能问题意味着什么? 像,这里 19 中的 transient 对象总数是一个相当大的数字,如果可能的话,它应该很小以增加应用程序的有效内存可用性或其他什么?

最佳答案

简而言之,性能优化意味着让您的应用保持活跃和响应 swift 。 优化的关键指标不是一个对象的瞬时或持久计数。

根据信息,您的 NSFileManager 为每个对象使用 16 字节。 所以它目前有 32 个持久性 (2 * 16) 和 336 (21 * 16) 总计。

高持久内存表示您当前的占用空间对于给定对象来说非常高。高总内存表明您过去的足迹可能很高(如果这些分配的子集是同时分配的)

While optimizing you should focus on mainly two aspects:
 1. How much is the minimum memory foot print when your app loads.
 2. How much is the maximum memory foot print. (You need to come up with use cases to figure out this one). 

随着内存占用量的增加,您的应用程序的性能会降低,这是因为操作系统为释放内存而进行的多次页面交换。您可以通过 VM 跟踪器工具对此进行跟踪。优化意味着将您的平均内存占用量保持在该点以下。

关于ios - Xcode 中分配检测模板中持久和 transient 列的真正含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34261656/

相关文章:

ios - 在游戏中实现多个角色服装的方法

ios - 将 UIImageView 仅应用于 UITableView 中的特定部分

ios - 如何在本地为 Objective-C 语言运行 travis-ci

ios - Objective-C 中的 init 实际上做了什么?

ios - 使用 Xcode 7 测试 iOS 9 应用程序无法从 http 请求获取数据

objective-c - Objective C 如何获取 Facebook 访问 token

ios - 第二个正斜杠会发生什么?

objective-c - 是否有适用于 iPad 2 的条码扫描仪 SDK?

xcode - OSX Cocoa NSButton类型复选框 "Select all "问题,如何解决?

android - 在移动设备上停止旋转