Os logs de desempenho coletam estatísticas sobre a velocidade de inicialização do aplicativo, travamentos e congelamentos. Visualize as métricas de velocidade de inicialização na página Basic Analysis do console do Mobile Analysis Service e os relatórios de travamentos e congelamentos na página Performance Analytics.
A instrumentação de log é compatível tanto com frameworks mPaaS quanto com projetos nativos.
Com base no framework mPaaS
-
Por padrão, o monitoramento de travamentos fica ativado em 10% dos dispositivos. Use a interface a seguir para definir a taxa de monitoramento de travamentos.
[MPAnalysisHelper setLagMonitorPercent: 100]; // Sets monitoring to 100%. This must be set before calling startPerformanceMonitor.O monitoramento de travamentos é ativado apenas em dispositivos físicos e não funciona no modo de depuração do Xcode.
-
Na inicialização, chame o método
[MPAnalysisHelper startPerformanceMonitor]. Insira essa chamada dentro do método-(void)application:(UIApplication *)application beforeDidFinishLaunchingWithOptions:(NSDictionary *)launchOptions.
Para projetos nativos
O SDK fornece interfaces de monitoramento de desempenho. Para utilizá-las, chame [PerformanceHelper performanceMonitor] no método - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions do seu AppDelegate.
#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]; // Sets monitoring to 100%. This must be set before calling startPerformanceMonitor.
[MPAnalysisHelper startPerformanceMonitor];
// Record the time interval used for app startup.
NSTimeInterval time = CFAbsoluteTimeGetCurrent() - __start_timestamp;
[[MPAnalysisHelper sharedInstance] writeLogForStartupWithTime:time];
}
@end
O monitoramento de travamentos é ativado apenas em dispositivos físicos e não funciona no modo de depuração do Xcode.
Personalizar limiares de monitoramento de desempenho
Caso os valores padrão não atendam às suas necessidades, personalize os limiares de monitoramento de desempenho.
Definir o limiar de travamento
#Import the header file.
#import <MPMasAdapter/MPAnalysisHelper.h>
/**
Sets the threshold for main thread stuttering monitoring. The unit is seconds. This is optional. The default value is 2 seconds.
*/
+ (void)setLagTimeThreshold:(NSUInteger)threshold;
/**
Sets the interval for stuttering detection. The value of lagTimeThreshold / lagCheckInterval should be an integer.
*/
+ (void)setLagCheckInterval:(NSTimeInterval)interval;
Definir o limiar de congelamento
#import <MPMasAdapter/MPMasSettings.h>
#Create an MPMasSettings category and override the following methods to customize.
/**
Gets the freeze duration threshold. To customize, override this in the Category. The value of anrTimeThreshold / anrCheckInterval should be an integer.
*/
- (NSUInteger)anrTimeThreshold
{
return custom_duration;
}
/**
Gets the freeze detection interval. To customize, override this in the Category. The value of anrTimeThreshold / anrCheckInterval should be an integer.
*/
- (NSTimeInterval)anrCheckInterval
{
return custom_detection_interval;
}
Definir o limiar de duração de congelamento na inicialização
#import <MPMasAdapter/MPMasSettings.h>
#Create an MPMasSettings category and override the following method to customize.
/**
Gets the startup freeze time threshold. To customize, override this in the Category.
*/
- (NSUInteger)startupAnrTimeThreshold
{
return custom_duration;
}
Instruções
Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado
Escreva o português brasileiro DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Tags xref (
<a data-tag="xref" ...>texto</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > eAplique todas as regras específicas do idioma rigorosamente
Aplique as regras de stopwords com tolerância zero
Use o modo imperativo em passos numerados e listas de procedimentos
Garanta a consistência terminológica — o mesmo termo deve ter a mesma tradução em todo o documento
Varie os inícios de frase em listas e tabelas — nenhum início deve se repetir mais de 3 vezes
Retorne APENAS o documento markdown em português brasileiro, sem explicações