FBMemoryProfiler简介
- 4月刚刚推出的新品~保证中你口味
- FaceBook荣誉出品~
- 作者Gricha
- 功能及前身:也许你用过FBRetainCycleDetector,这就是FBMemoryProfiler的前身了,是由Gricha编写用来检测循环引用的小工具。FBMemoryProfiler比FBRetainCycleDetector要强大的多,提供了非常帮的
交互界面
和更多的功能。
初上手
pod安装
1
pod 'FBMemoryProfiler'
enable FBAllocationTracker:
在
mian.m
文件中(注意是main.m
,不是AppDelegate.m)中加入:1
2
3
4
5
6
7
8
9
int main(int argc, char * argv[]) {
[[FBAllocationTrackerManager sharedManager] startTrackingAllocations];
[[FBAllocationTrackerManager sharedManager] enableGenerations];
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}enable FBMemoryProfiler:
这次是去
AppDelegate.m
了,去加一个变量,保证MemoryProfiler不会被释放:1
@property (nonatomic , strong) FBMemoryProfiler * memoryProfiler;
在
didFinishLaunchingWithOptions
方法中添加:1
2
3self.memoryProfiler = [FBMemoryProfiler new];
retainCycleDetectorConfiguration:nil];
[self.memoryProfiler enable];试一试,运行你的APP是不是能看到小方块了
展开后点击Expand,可以看到所有的类,你可以通过
Filter
过滤你想看到的结果,比如你的项目是CF开头,就可以输入CF来过滤还有很多功能,去尝试吧!
添加自己的pulgin
除了基本功能,FBMemoryProfiler还提供了接口扩展功能
1. FBMemoryProfilerPluggable
你可以阅读FBMemoryProfilerPluggable.h
FBMemoryProfilerPluggable是一个协议,你可以通过实现这个协议来扩展你想要的功能
提供了如下方法:
1 | @protocol FBMemoryProfilerPluggable <NSObject> |
2. 实现FBMemoryProfilerPluggable协议
来看看Example
中提供简单的插件
1 | /** |
1 | /** |
其功能就是简单的打印(DDLogWarn是CocoaLumberjack提供的Log方法
你可以换成你自己的)
3. 修改FBMemoryProfiler的初始化方法
写好插件后需要用起来,去改一下AppDelegate中的FBMemoryProfiler初始化方法即可
1 | self.memoryProfiler = [[FBMemoryProfiler alloc] initWithPlugins:@[[CacheCleanerPlugin new], |
重新运行项目,点击Retain Cycles
按钮,是不是能看到控制台有打印了
补充
FBMemoryProfiler目前只是0.1版本,不能算稳定,我在使用的时候也Crash了好几次。但是谁不相信FaceBook的大神呢~嘿嘿
有什么问题都可以在博文后面留言,或者微博上私信我。
博主是 iOS 妹子一枚。
希望大家一起进步。
我的微博:Lotty周小鱼