介绍:
目前公司项目处于优化状态,所以特地在内存泄露上做优化,目前使用两种工具,一种使用MLeaksFinder(腾讯旗下的)和苹果自带的instrument下的Leaks工具。
内存泄露问题:
1.问题一:


问题:该代码主要是用于3DES加密使用,看完整段代码后,发现malloc后并没有释放也没有将指向指针NULL掉,导致内存泄露2Bytes。
解决方案:则是在之后将其内存空间释放,并且指针NULL掉。如图:

工具:Leaks
参考:关于C语言的malloc函数以及内存泄漏的问题http://blog.csdn.net/qq_26501341/article/details/57075502
2.问题二:


问题:这个方法返回的对象是CFStringRef格式,这是个Core Foundation对象,在这里将其强制转换以后可以当做NSString对象来使用,但是这个CF对象是的引用计数+1,此时是需要处理的,在ARC下也不会自动释放,需要手动在使用完这个对象后调用CFRelease去手动释放即: CFRelease(uuid),但是已经对uuid释放了,所以问题出在appUID中,只要对其添加自动释放池就可解决。
解决方案:对appUID添加自动释放池就可解决。如图:

工具:Leaks
参考:http://blog.csdn.net/liyiyismile/article/details/50476641
网友评论