簡體   English   中英

如何使用 DispatchQueue 從 singleton 字典中啟動和停止 Firebase 性能跟蹤

[英]How to start and stop Firebase performance traces from a singleton dictionary with DispatchQueue

我正在實施 Firebase 性能跟蹤,所以我創建了一個共享實例並添加了一個字典來保存它們。 我所理解的字典不是線程安全的,我需要添加一個調度隊列來處理這個問題。

我應該如何使用 DispatchQueue 來獲得最准確的跟蹤? 還是我采取了錯誤的方法來測量痕跡?

import FirebasePerformance

class Tracing {
    static let shared = Tracing()
    let queue = DispatchQueue(label: "thread-safe-tracing")

    var traces = [String: Trace]()

    static func startTracing(name: String) {
        shared.queue.sync {
            if let trace = Performance.startTrace(name: name) {
                shared.traces[name] = trace
            }
        }
    }

    static func stop(name: String) {
        shared.queue.sync {
            if let trace = shared.traces[name] {
                trace.stop()
                shared.traces[name] = nil
            }
        }
    }

  }

您嘗試使用synchronus方法,請嘗試使用Asynchronus並告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM