Uma biblioteca iOS que fornece ferramentas de desenvolvedor para navegar objetos na memória ao longo do tempo, usando o FballocationTracker e o FBreTaincycleteTector.
Esta biblioteca mostra como FBAllocationTracker
e FBRetainCycleDetector
podem cooperar juntos e como eles podem ser usados no aplicativo real.
Ele usa o FballocationTracker para coletar informações sobre os objetos. Ele suporta gerações e retém a detecção do ciclo.
Aqui está uma pequena demonstração (o projeto está disponível no diretório de exemplo)
Para o seu CartFile Add:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
é construído a partir de compilações não-debutas; portanto, quando você quiser testá-lo, use
carthage update --configuration Debug
Para o seu podspec, adicione:
pod 'FBMemoryProfiler'
Você poderá usar FBMemoryProfiler
totalmente apenas nas construções Debug
. Isso é controlado pelo sinalizador de compilação que pode ser fornecido à compilação para fazê -lo funcionar em outras configurações.
Para começar a usar FBMemoryProfiler
você precisará primeiro ativar FBAllocationTracker
.
# import < FBAllocationTracker/FBAllocationTrackerManager.h >
int main ( int argc, char * argv[]) {
[[FBAllocationTrackerManager sharedManager ] startTrackingAllocations ];
[[FBAllocationTrackerManager sharedManager ] enableGenerations ];
@autoreleasepool {
return UIApplicationMain (argc, argv, nil , NSStringFromClass ([AppDelegate class ]));
}
}
Para habilitar o Profiler de memória:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
será exibido como um botão na tela. Uma vez tocado, ele abrirá o Profiler de memória no modo de tamanho real.
Também podemos definir plugins (verifique abaixo) e filtros para o detector de ciclo de retenção, que passamos para a configuração.
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
Os plugins são objetos que estão em conformidade com o protocolo FBMemoryProfilerPluggable. Exemplo de uso: limpadores de cache personalizados, madeireiros que registram dados no servidor.
Consulte o arquivo contribuinte sobre como ajudar.
Veja (Licença)