Eine iOS -Bibliothek, die Entwickler -Tools zum Durchsuchen von Objekten im Speicher im Laufe der Zeit mit FballocationTracker und Fbretaincycledetector bietet.
Diese Bibliothek zeigt, wie FBAllocationTracker
und FBRetainCycleDetector
miteinander kooperieren können und wie sie in realer App verwendet werden können.
Es verwendet FballocationTracker, um Informationen über die Objekte zu sammeln. Es unterstützt Generationen und behält die Zykluserkennung bei.
Hier ist eine kleine Demo (Projekt ist im Beispielverzeichnis verfügbar)
Zu Ihrer Cartfile fügen Sie hinzu:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
wird aus Nicht-Debug-Builds ausgebaut. Wenn Sie sie also testen möchten, verwenden Sie es also
carthage update --configuration Debug
Zu Ihrem Podspec hinzufügen:
pod 'FBMemoryProfiler'
Sie können FBMemoryProfiler
nur in Debug
-Builds vollständig verwenden. Dies wird durch das Kompilierungsflag gesteuert, der dem Build zur Verfügung gestellt werden kann, damit es in anderen Konfigurationen funktioniert.
Um FBMemoryProfiler
zu verwenden, müssen Sie zuerst FBAllocationTracker
aktivieren.
# 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 ]));
}
}
Um den Speicherprofiler zu aktivieren:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
wird als Schaltfläche auf dem Bildschirm angezeigt. Sobald es abgebaut ist, wird der Speicherprofiler im Modus in voller Größe geöffnet.
Wir können auch Plugins definieren (unten prüfen) und filtern für den Rückhaltezyklusdetektor, den wir an die Konfiguration übergeben.
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
Plugins sind Objekte, die dem fbMemoryProfilerpluggierbaren Protokoll entsprechen. Beispiel Verwendung: Benutzerdefinierte Cache -Reiniger, Protokoller, die Daten auf Server protokollieren.
Sehen Sie sich die beitragende Datei an, um zu helfen.
Siehe (Lizenz)