Une bibliothèque iOS fournissant des outils de développeur pour parcourir des objets en mémoire au fil du temps, en utilisant fballocationTracker et FBretainCycledEntector.
Cette bibliothèque montre comment FBAllocationTracker
et FBRetainCycleDetector
peuvent coopérer ensemble et comment ils peuvent être utilisés dans Real App.
Il utilise FballocationTracker pour recueillir des informations sur les objets. Il prend en charge les générations et conserve la détection du cycle.
Voici une petite démo (le projet est disponible dans Exemple Directory)
À votre cartouche Ajouter:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
est construit à partir de constructions non-debug, donc lorsque vous souhaitez le tester, utilisez
carthage update --configuration Debug
À votre podSpec Ajouter:
pod 'FBMemoryProfiler'
Vous pourrez utiliser FBMemoryProfiler
entièrement uniquement dans les versions Debug
. Ceci est contrôlé par un drapeau de compilation qui peut être fourni à la construction pour le faire fonctionner dans d'autres configurations.
Pour commencer à utiliser FBMemoryProfiler
vous devrez d'abord activer 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 ]));
}
}
Pour activer le profileur de mémoire:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
apparaîtra comme un bouton à l'écran. Une fois taraudé, il ouvrira le profileur de mémoire en mode pleine grandeur.
Nous pouvons également définir les plugins (vérifier ci-dessous) et les filtres pour conserver le détecteur de cycle, que nous passons à la configuration.
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
Les plugins sont des objets conformes au protocole FBMemoryProfilerPluggable. Exemple d'utilisation: nettoyeurs de cache personnalisés, journalistes qui enregistrent les données au serveur.
Voir le fichier contributif pour aider à aider.
Voir (licence)