【问题标题】:How to prevent memory leak on Firebase trace on iOS without calling stop?如何在不调用停止的情况下防止 iOS 上的 Firebase 跟踪上的内存泄漏?
【发布时间】:2020-01-09 12:37:29
【问题描述】:

我计划在我的一个 iOS 项目中使用Firebase Performance Monitoring SDK,并且我正在尝试追踪具有不同结果的特定旅程。例如,假设我想跟踪用户重置密码所花费的时间。我将 start 跟踪用户何时开始重置密码之旅,并且我想在成功重置密码时停止跟踪。我的问题是,如果用户因为记住密码而放弃密码重置并取消它,我不会调用跟踪的 stop() 方法。根据我在question 中的理解,它将开始导致内存泄漏,直到停止。我正在尝试一种在不调用 stop() 方法的情况下优雅地结束/停止/丢弃跟踪并停止内存泄漏的方法,因为它会导致报告不正确的数据。

任何建议将不胜感激。

现在我有一个 swift 类来处理跟踪,其中包含以下内容。

private var passwordResetTrace: Trace?

func startPWResetTrace() {
    passwordResetTrace.startTrace(name: "passwordTimeTrace")
}

func stopPWResetTrace() {
    passwordResetTrace.stop()
}

我不确定这是否只是将 Trace 设置为 nil 这么简单,这在我的脑海中似乎还不够。

【问题讨论】:

    标签: firebase firebase-performance


    【解决方案1】:

    FIRTrace 来源判断,they do clean up resourcesdealloc。此外,FIRTrace 甚至还有私有的cancel() 方法,doesn't do anything related 用于资源管理。我认为这足以假设仅释放跟踪而不停止不会导致内存泄漏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 2015-02-05
      • 2014-01-17
      • 2010-12-20
      相关资源
      最近更新 更多