app或者framework內存優化

最近app的內存狂增,運行過一段時間後,內存會一直增大,雖然不會影響崩潰,可是很影響心情,因此作了一下內存優化工做,總結一下以下:web

由淺入深,一步步來。緩存

一.去除沒用的變量,浪費空間。analyze工具對工程分析,而後對分析結果從上到下進行處理。cookie

2、去除內存泄露 Leaks工具分析,對內存泄露的地方進行處理app

3、在manager層持有navigation,致使navigation不釋放,全部的界面不釋放,去除manager層的navigation成員變量。規範處理,邏輯層不操做界面工具

4、界面不釋放(dealloc方法不執行)優化

一)、由於循環引用致使界面不釋放url

一、nstimer沒有invalidate ,viewcontroller一直不釋放內存

二、block 循環引用,,viewcontroller一直不釋放webview

三、delegate 循環引用,viewcontroller一直不釋放開發

二)、界面中某些特殊的空間不釋放,致使viewcontroller一直不釋放。

        _jjgView = [[JJOrsLZView alloc] initWithTarget:self action:@selector(didSelectGift:)];

        _jjgView.delegate = self;

        [_jjgView showFromGoodsDetail:YES];

- (void)showFromGoodsDetail:(BOOL)isFromGoodsDetail{    

    UIWindow *window = [[UIApplication sharedApplication] keyWindow];

    [window addSubview:self];

}

_jjgView這個view是加載在UIWindow上面,一直不釋放,而當前的viewcontroller又持有_jjgView。致使當前的viewcontroller一直不釋放,因此要對這個_jjgView處理一下,不使用的時候,使它先釋放掉。

5、當工程開發的比較久的時候,會引入不少的東西,運行過程當中會產生緩存文件,例如sdimageview、webview、js等.當不使用的時候,或者必要的時候將這些組件產生的緩存清除。

一、sdimagecache

二、JsMethodSignaturecache

三、webkitcachemodelpreferencekey

四、allcookies urlcache

相關文章
相關標籤/搜索