我试图理解,分配模板中的瞬态和持久 列的含义是什么.从教程 http://www.raywenderlich.com/97886/instruments-tutorial-with-swift-getting-started 我发现" Persistent列保留了当前存在于内存中的每种类型的对象数量的计数.瞬态列显示已经存在,但至今已释放对象的数量.持久性对象是使用内存,临时对象有他们的内存释放出来. "
根据上面的解释,从图片中统计表中选中的行,可以说,NSFileManager的 2个对象目前存在于内存中,19个没有.对象的创建已经发布.
但对于iOS App的优化或性能问题意味着什么?有点像,这里19中的瞬态对象的总数是一个相当大的数字,如果可能的话,它应该是小的,以增加应用程序的有效内存可用性或其他东西?
简短的性能优化意味着让您的应用程序保持活跃和响应.优化的关键指标不是一个对象的暂时或持久计数.
根据您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).
随着内存占用量的增加,您的应用程序性能会因为OS完成多次页面交换以释放内存而降低速度.您可以通过VM tracker instrument跟踪此信息.优化意味着保持平均内存占用率降低.