Библиотека iOS, предоставляющая инструменты разработчика для просмотра объектов в памяти с течением времени, используя FballocationTracker и fbretaincycledetector.
Эта библиотека показывает, как FBAllocationTracker
и FBRetainCycleDetector
могут сотрудничать вместе и как их можно использовать в реальном приложении.
Он использует FballocationTracker для сбора информации об объектах. Он поддерживает поколения и сохраняет обнаружение цикла.
Вот небольшая демонстрация (проект доступен в каталоге примеров)
К вашему Cartfile добавить:
github "facebook/FBMemoryProfiler"
FBMemoryProfiler
создан из строительств без дебугских
carthage update --configuration Debug
К вашему Podspec добавить:
pod 'FBMemoryProfiler'
Вы сможете использовать FBMemoryProfiler
полностью только в сборках Debug
. Это контролируется флагом компиляции, который может быть предоставлен для сборки, чтобы он работал в других конфигурациях.
Чтобы начать использовать FBMemoryProfiler
, вам сначала понадобится включить 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 ]));
}
}
Чтобы включить профилировщик памяти:
# import < FBMemoryProfiler/FBMemoryProfiler.h >
FBMemoryProfiler *memoryProfiler = [FBMemoryProfiler new ];
[memoryProfiler enable ];
// Store memory profiler somewhere to extend it's lifetime
_memoryProfiler = memoryProfiler;
FBMemoryProfiler
отобразится в виде кнопки на экране. После нажатия он откроет профилировщик памяти в режиме полноразмерного режима.
Мы также можем определить плагины (проверьте ниже) и фильтры для детектора цикла сохраняются, которые мы передаем в конфигурацию.
_memoryProfiler = [[FBMemoryProfiler alloc ] initWithPlugins: @[[IncredibleCacheCleaningPlugin new ],
[AwesomeLoggerPlugin new ]]
retainCycleDetectorConfiguration: someConfigurationWithCustomFilters];
[_memoryProfiler enable ];
Плагины - это объекты, которые соответствуют протоколу FBMEMORYPORFILERERGELUGATE. Пример использования: пользовательские очистители кэша, регистраторы, которые регистрируют данные на сервер.
Смотрите файл вклад для того, как помочь.
См. (Лицензия)