Как предотвратить утечку памяти в трассировке Firebase на iOS без вызова остановки?

Я планирую использовать SDK Firebase Performance Monitoring в своем проекте iOS и Я пытаюсь проследить конкретное путешествие с разными результатами. Например, предположим, что я хочу отслеживать время, затрачиваемое пользователем на сброс пароля. Я начну отслеживать, когда пользователь начнет свой сброс. путешествие с паролем, и я хочу остановить трассировку при успешном сбросе пароля. Моя проблема заключается в том, что если пользователь отказывается от сброса пароля, потому что он помнит свой пароль и отменяет его, я не вызываю метод stop() трассировки. Из того, что я понимаю в этом вопрос, он начнет вызывать утечку памяти, пока не будет остановлен. Я пытаюсь придумать способ изящно завершить/остановить/отбросить трассировку и остановить утечку памяти без вызова метода stop(), так как это приведет к сообщению неверных данных.

Мы ценим любые предложения.

Прямо сейчас у меня есть быстрый класс, который обрабатывает трассировку со следующим внутри него.

private var passwordResetTrace: Trace?

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

func stopPWResetTrace() {
    passwordResetTrace.stop()
}

Я не уверен, что это что-то столь же простое, как просто установка трассировки на ноль, этого кажется недостаточно в моей голове.


person K81    schedule 09.01.2020    source источник


Ответы (1)


Судя из FIRTrace источников, они очистить ресурсы в dealloc. Более того, у FIRTrace есть даже закрытый метод cancel(), который не делает ничего, связанного с управлением ресурсами. Я думаю, этого достаточно, чтобы предположить, что простой выпуск трассировки без остановки не приведет к утечке памяти.

person Alexander Vasenin    schedule 29.03.2021