性能日志用于統計應用的啟動速度、卡頓與卡死等情況。您可以在移動分析控制臺的 基礎分析 頁面查看啟動速度指標;在 性能分析 頁面中查看卡頓與卡死報告。
支持基于 mPaaS 框架和原生工程進行日志埋點。
基于 mPaaS 框架
卡頓監控默認對 10% 的設備開啟,可通過下面這個接口設置卡頓開啟率。
[MPAnalysisHelper setLagMonitorPercent: 100]; // 100% 監控,需要在 startPerformanceMonitor 調用之前設置
卡頓監控只有在真機上并且非 Xcode 調試狀態下是打開的。
在啟動時調用
[MPAnalysisHelper startPerformanceMonitor]
,推薦在-(void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中調用。
基于原生工程
SDK 封裝了性能監控接口,推薦您在 AppDelegate 的 - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
方法中調用 [PerformanceHelper performanceMonitor]
。
#import "PerformanceHelper.h"
#import <MPAnalysis/MPAnalysisHelper.h>
static NSTimeInterval __start_timestamp = 0;
@implementation PerformanceHelper
+ (void)load
{
__start_timestamp = CFAbsoluteTimeGetCurrent();
}
+ (void)performanceMonitor
{
//start performance monitor
[MPAnalysisHelper setLagMonitorPercent: 100]; // 100% 監控,需要在 startPerformanceMonitor 調用之前設置
[MPAnalysisHelper startPerformanceMonitor];
//record the time interval used for the app startup
NSTimeInterval time = CFAbsoluteTimeGetCurrent() - __start_timestamp;
[[MPAnalysisHelper sharedInstance] writeLogForStartupWithTime:time];
}
@end
卡頓監控只有在真機上并且非 Xcode 調試狀態下是打開的。
自定義設置性能監控閾值
當默認的性能監控閾值無法滿足您的需求時,可以自定義設置相關閾值。
設置卡頓閾值
#引入頭文件
#import <MPMasAdapter/MPAnalysisHelper.h>
/**
設置主線程卡頓監控的閾值,單位秒,可不設置,默認值為2秒
*/
+ (void)setLagTimeThreshold:(NSUInteger)threshold;
/**
設置卡頓檢測的間隔時長, 建議 lagTimeThreshold / lagCheckInterval 等于整數
*/
+ (void)setLagCheckInterval:(NSTimeInterval)interval;
設置卡死閾值
#import <MPMasAdapter/MPMasSettings.h>
#創建 MPMasSettings 分類,重新下面方法做自定義
/**
獲取卡死時長閾值,需自定義時在Category中重寫,建議 anrTimeThreshold / anrCheckInterval 等于整數
*/
- (NSUInteger)anrTimeThreshold
{
return 自定義的時長;
}
/**
獲取卡死檢測間隔時長,需自定義時在Category中重寫,建議 anrTimeThreshold / anrCheckInterval 等于整數
*/
- (NSTimeInterval)anrCheckInterval
{
return 自定義的檢測間隔時長;
}
設置啟動卡死時長閾值
#import <MPMasAdapter/MPMasSettings.h>
#創建 MPMasSettings 分類,重寫下面方法做自定義
/**
獲取啟動卡死時間閾值,需自定義時在Category中重寫
*/
- (NSUInteger)startupAnrTimeThreshold
{
return 自定義的時長;
}
文檔內容是否對您有幫助?