AFNetWorking 内存泄漏的问题 -- AFHTTPSessionManager --Instruments体检结果分享
来源:互联网 发布:云计算工程师要学什么 编辑:程序博客网 时间:2024/05/01 08:52
今天用Instruments对APP做了下体检,结果如下:
1、CPU占用最大的一个加载动画,原因是这个加载动画用到了CoreGraphics核心绘图中的transform,不断改变UIView的形状,发现这个绘制还是很占CPU的,以后这种动画还是得慎用,影响APP性能;
2、虚拟内存的使用最大的是SDWebImage,可能本身我们的APP就图片内容最多;
3、内存泄漏问题:发现用到AFHTTPSessionManager的地方发生了很大的内存泄漏,每一次网络请求都会报错,而且都会一把很大的❌(如上图),就在网上搜索一下了,并进行了总结。原因是每次网络请求的时候都重新
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
创建了一下,导致接口请求完之后一直没有得到释放。最后把AFHTTPSessionManager这个对象我做成了单例的,也就是每次请求接口的时候都是用的一个manager。改完之后调试OK,之前的❌❌都不见了。还是有效果的,下面把单例创建的代码贴一下,有问题可留言一起探讨。
static AFHTTPSessionManager *manager;
+ (AFHTTPSessionManager *)sharedManager {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
// 初始化请求管理类
manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
// 设置15秒超时 - 取消请求
manager.requestSerializer.timeoutInterval = 15.0;
// 编码
manager.requestSerializer.stringEncoding = NSUTF8StringEncoding;
// 缓存策略
manager.requestSerializer.cachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
manager.responseSerializer = [AFJSONResponseSerializer serializer];
// 支持内容格式
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/plain", @"text/javascript", @"text/json", @"text/html", nil];
});
return manager;
}
使用的时候就如下一句代码即可
AFHTTPSessionManager *manager = [ZLHttpTool sharedManager];
- AFNetWorking 内存泄漏的问题 -- AFHTTPSessionManager --Instruments体检结果分享
- AFNetworking 3.0中调用[AFHTTPSessionManager manager]方法导致内存泄漏的解决办法
- instruments的资料,内存泄漏
- AFNetworking遇到内存泄漏问题
- Instruments Leak解决内存泄漏问题
- 使用Xcode的Instruments检测内存泄漏
- 使用Xcode Instruments Leak解决内存泄漏问题
- 使用Xcode Instruments Leak解决内存泄漏问题
- 使用Xcode Instruments Leak解决内存泄漏问题
- AFNetworking源码 - AFHTTPSessionManager
- 利用AFNetworking 的AFHTTPSessionManager代码实现代理的方式访问任意指定IP地址,解决域名DNS上的问题
- [分享] 关于 iframe 内存泄漏问题
- 如何解决afnetworking内存泄漏
- Leaks监测AFNetWorking内存泄漏
- iPhone Instruments工具使用 内存泄漏检测
- 使用Instruments动态分析内存泄漏
- IE内存泄漏的问题
- IE的内存泄漏问题
- 一种分布式数据库同步方案
- jquery 对象转为url参数
- logstash 多input与
- Hibernate查询、连接池、二级缓存
- io压缩流
- AFNetWorking 内存泄漏的问题 -- AFHTTPSessionManager --Instruments体检结果分享
- iOS 10.0之前和之后的Local Notification有神马不同
- hdu ---2039做题笔记
- java面向对象的三大特性的学习笔记
- 自定义微信公众号菜单一二级选项(二)
- 中文乱码问题(项目以UTF-8为例子)
- CC2530定时器配置笔记1(基本定时功能配置)
- The Dependency Inversion Principle
- 寄存器比内存访问速度快的原因