【问题标题】:Profiling Swift with Instruments, what exactly is _swift_retain_?使用 Instruments 分析 Swift,_swift_retain_ 到底是什么?
【发布时间】:2016-04-14 13:06:27
【问题描述】:

我正在使用 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) 的一部分。详情请见the source in stdlib。 ARC似乎经常被w.r.t唠叨。诸如此类的性能问题,但我很惊讶您看到这种行为仅使用值类型。但是,谁知道 ARC 在幕后发生了什么……
  • 嗯,它说“引用计数仅适用于类的实例”,我必须有一个重分配的类。
  • 是的,同一句话让我对你的情况感到困惑,因为你说你主要有值类型。
  • @dfri 如果您将您的 cmets 移至答案,我可以将其标记为已回答
  • 你没有提到这些结构里面有什么。如果它们包含对象,那么肯定会有 ARC 活动。

标签: ios swift performance instruments


【解决方案1】:

这些函数_swift_retain__swift_release_Swifts automatic reference counting (ARC) 的一部分。详情请见the source in stdlib。 ARC似乎经常被w.r.t唠叨。诸如此类的性能问题,但我很惊讶您看到这种行为仅使用值类型。然而,这可能是因为背后有 ARC。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 2013-12-13
    • 2012-03-10
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多