性能監控會收集跟踪信息,以幫助您監控應用程序的性能。跟踪是對您的應用中兩個時間點之間捕獲的性能數據的報告。
您可以創建自己的跟踪以監視與您的應用程序中的特定代碼相關聯的性能數據。使用自定義代碼跟踪,您可以測量應用程序完成特定任務或一組任務所需的時間,例如,加載一組圖像或查詢數據庫。
定制代碼跟踪的默認度量標準是其“持續時間”(跟踪的起點和終點之間的時間),但是您也可以添加定制度量標準。
在代碼中,使用Performance Monitoring SDK提供的API定義自定義代碼跟踪的開始和結束。 自定義代碼跟踪在創建後也可以啟動,並且它們是線程安全的。
在Firebase控制台的“在設備上”選項卡中查看來自自定義代碼跟踪的數據(在此頁面的稍後了解更多)。請注意,由於為這些跟踪收集的默認度量標準是“持續時間”,因此有時將它們稱為“持續時間跟踪”。另外,在Firebase控制台(在“設備上”選項卡中)中,這些跟踪也被分組在“ Durations ”表下。
默認屬性,自定義屬性和自定義指標
對於自定義代碼跟踪,性能監控會自動記錄默認屬性(常見的元數據,例如應用程序版本,國家/地區,設備等),以便您可以在Firebase控制台中過濾跟踪數據。您還可以添加和監視自定義屬性(例如游戲級別或用戶屬性)。您可以進一步配置自定義代碼跟踪,以記錄跟踪範圍內發生的與性能相關的事件的自定義指標。例如,您可以為緩存的命中和未命中次數或UI在明顯的時間內無響應的次數創建自定義指標。
自定義屬性和自定義指標顯示在Firebase控制台中,同時顯示跟踪的默認屬性和默認指標。
添加自定義代碼跟踪
使用性能監視跟踪API( Swift | Obj-C )添加自定義代碼跟踪以監視特定的應用程序代碼。
請注意以下幾點:
- 一個應用程序可以具有多個自定義代碼跟踪。
- 可以同時運行多個自定義代碼跟踪。
- 自定義代碼跟踪的名稱必須滿足以下要求:不能包含前導或尾隨空格,不能包含前導下劃線(
_
)字符,並且最大長度為100個字符。 - 自定義代碼跟踪支持添加自定義指標和自定義屬性。
要啟動和停止自定義代碼跟踪,請使用類似於以下內容的代碼行包裝要跟踪的代碼:
迅速
// Add the Performance Monitoring module to your header import FirebasePerformance let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") // code that you want to trace trace.stop()
物鏡
// Add the Performance Monitoring module to your header @import FirebasePerformance; FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; // code that you want to trace [trace stop];
將自定義指標添加到自定義代碼跟踪
使用性能監視跟踪API( Swift | Obj-C )將自定義指標添加到自定義代碼跟踪。
請注意以下幾點:
- 自定義指標的名稱必須滿足以下要求:不能包含前導或尾隨空格,不能包含前導下劃線(
_
)字符,並且最大長度為100個字符。 - 每個自定義代碼跟踪最多可以記錄32個指標(包括默認的Duration指標)。
要添加自定義指標,請在每次事件發生時添加類似於以下內容的代碼行。例如,此自定義指標計算應用程序中發生的與性能相關的事件,例如緩存命中或重試。
迅速
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.incrementMetric(named:"EVENT_NAME", by: 1) // code that you want to trace (and log custom metrics) trace.stop()
物鏡
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace incrementMetric:@"EVENT_NAME" by:1]; // code that you want to trace (and log custom metrics) [trace stop];
為自定義代碼跟踪創建自定義屬性
使用性能監視跟踪API( Swift | Obj-C )將自定義屬性添加到自定義代碼跟踪。
要使用自定義屬性,請將代碼添加到您的應用中,以定義屬性並將其與特定的自定義代碼跟踪相關聯。您可以在跟踪開始到跟踪停止之間的任何時間設置自定義屬性。
請注意以下幾點:
自定義屬性的名稱必須滿足以下要求:不能包含前導或尾隨空格,不能包含前導下劃線(
_
)字符,並且最大長度為32個字符。每個自定義代碼跟踪最多可以記錄5個自定義屬性。
您不應使用包含用於個人識別Google個人身份的信息的自定義屬性。
了解有關此指南的更多信息
迅速
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.setValue("A", forAttribute: "experiment") // Update scenario. trace.setValue("B", forAttribute: "experiment") // Reading scenario. let experimentValue:String? = trace.valueForAttribute("experiment") // Delete scenario. trace.removeAttribute("experiment") // Read attributes. let attributes:[String, String] = trace.attributes;
物鏡
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace setValue:@"A" forAttribute:@"experiment"]; // Update scenario. [trace setValue:@"B" forAttribute:@"experiment"]; // Reading scenario. NSString *experimentValue = [trace valueForAttribute:@"experiment"]; // Delete scenario. [trace removeAttribute:@"experiment"]; // Read attributes. NSDictionary <NSString *, NSString *> *attributes = [trace attributes];
跟踪,查看和過濾性能數據
跟踪儀表板中的特定指標
將關鍵指標添加到儀表板,以了解它們的趨勢。您可以通過查看每週的更改來快速確定回歸,或者驗證代碼中的最新更改正在改善性能。

要將指標添加到儀表板,請轉到Firebase控制台中的“性能”儀表板,然後單擊“儀表板”選項卡。單擊一個空的指標卡,然後選擇一個現有指標以添加到儀表板。單擊填充的度量標準卡上的 以獲取更多選項,例如替換或刪除度量標準。
儀表板以圖形形式和數字百分比形式顯示隨時間推移收集的指標數據。
查看所有跡線及其數據
要查看這些跟踪,請轉到Firebase控制台中的“性能”儀表板,然後單擊“在設備上”選項卡。
在“設備上”選項卡上,您可以單擊各個屏幕以瀏覽跟踪並深入研究感興趣的指標。在大多數頁面上,可以使用“過濾器
按鈕(屏幕的左上角)按屬性過濾數據,例如:
- 按應用程序版本過濾以查看有關先前版本或最新版本的數據
- 按設備過濾以了解舊設備如何處理您的應用
- 按國家/地區篩選,以確保您的數據庫位置不影響特定區域
了解有關查看跟踪數據的更多信息。
下一步
- 查看用戶會話的詳細報告,在其中您可以在時間線上下文中看到在同一會話期間收集的其他跟踪的特定跟踪。