Una biblioteca de iOS que proporciona herramientas de desarrollador para navegar por los objetos en la memoria a lo largo del tiempo, utilizando FBallocationTracker y FBRetaIncycleTetector.
Esta biblioteca muestra cómo FBAllocationTracker
y FBRetainCycleDetector
pueden cooperar juntos, y cómo pueden usarse en la aplicación real.
Utiliza FBallocationTracker para recopilar información sobre los objetos. Admite generaciones y retiene la detección del ciclo.
Aquí hay una pequeña demostración (el proyecto está disponible en el directorio de ejemplo)
A su Cartfile Agregar:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
se construye a partir de compilaciones que no son de debug, por lo que cuando desee probarlo, use
carthage update --configuration Debug
A su podpec Agregar:
pod 'FBMemoryProfiler'
Podrá usar FBMemoryProfiler
totalmente solo en construcciones Debug
. Esto se controla mediante un indicador de compilación que se puede proporcionar a la compilación para que funcione en otras configuraciones.
Para comenzar a usar FBMemoryProfiler
primero deberá habilitar 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 el Profiler de memoria:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
aparecerá como un botón en la pantalla. Una vez aprovechado, abrirá el perfilador de memoria en modo de tamaño completo.
También podemos definir complementos (verificar a continuación) y filtros para el detector de ciclo de retención, que pasamos a la configuración.
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
Los complementos son objetos que se ajustan al protocolo FBMemoryProfilerPlugable. Uso de ejemplo: limpiadores de caché personalizados, registradores que registran datos al servidor.
Vea el archivo contribuyente sobre cómo ayudar.
Ver (Licencia)