使用 Instruments 分析 Swift,_swift_retain_ 到底是什么?
Profiling Swift with Instruments, what exactly is _swift_retain_?
我正在使用 Instruments 分析我的 Swift iOS 应用程序。大量时间花在了
_swift_retain_(swift::HeapObject*) libSwiftCore.dylib
和
_swift_release_(swift::HeapObject*) libSwiftCore.dylib
我的代码主要是创建(并超出范围)结构和元组。据我了解,因为它们是值对象,所以它们是在堆栈上分配的,因此我不应该看到这么多堆操作。
_swift_retain_
和 _swift_release_
究竟是什么意思?
这些函数 _swift_retain_
和 _swift_release_
是 Swifts automatic reference counting (ARC). For detailes, see the source in stdlib 的一部分。 ARC 似乎经常被唠叨 w.r.t。诸如此类的性能问题,但令我惊讶的是您仅使用值类型就看到了这种行为。然而,这可能是由于引擎盖后面的 ARC 造成的。
我正在使用 Instruments 分析我的 Swift iOS 应用程序。大量时间花在了
_swift_retain_(swift::HeapObject*) libSwiftCore.dylib
和
_swift_release_(swift::HeapObject*) libSwiftCore.dylib
我的代码主要是创建(并超出范围)结构和元组。据我了解,因为它们是值对象,所以它们是在堆栈上分配的,因此我不应该看到这么多堆操作。
_swift_retain_
和 _swift_release_
究竟是什么意思?
这些函数 _swift_retain_
和 _swift_release_
是 Swifts automatic reference counting (ARC). For detailes, see the source in stdlib 的一部分。 ARC 似乎经常被唠叨 w.r.t。诸如此类的性能问题,但令我惊讶的是您仅使用值类型就看到了这种行为。然而,这可能是由于引擎盖后面的 ARC 造成的。