Instruments
Instruments工具是用于动态跟踪和分析代码的工具,可以跟踪一个或者多个进程,并检测收集实时数据,使开发者更好地理解应用程序和操作系统的行为和性能。
- 追查代码中难以重现的问题
- 对应用程序进行性能分析
- 自动化测试应用程序中的代码
- 对应用程序进行压力测试
- 进行一般的系统级故障诊断
- 对应用程序的代码如何工作有更加深入的了解
Allocations
Instruments中的Allocations工具可以显示内存中的对象占用曲线,内存当前都分配给那些对象、被分配内存对象数量以及由哪些函数进行对象的创建。
因此可以借由此工具了解到应用程序中的内存分配状态,从而定位应用程序内存效率低下的地方。
iOS应用程序的开发中,内存分配是交由ARC(自动引用计数)技术来实现的,但该技术也有局限性,比如两个对象相互强引用的时候,其解决办法也有,但是一般难以发现,这时可以使用Allocations工具进行内存泄漏的检测。
模拟相互强引用的代码:
class Student: Person {
var classmate:Student?
override init(personName: String) {
super.init(personName: personName)
print("\(name) 被创建")