JSPatch icon indicating copy to clipboard operation
JSPatch copied to clipboard

dealloc 调用会延迟... 能优化成立即释放吗?

Open sanshanchuns opened this issue 9 years ago • 11 comments

2015-07-29 11:39:07.175 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:08.085 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:11.402 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:12.305 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:13.067 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:15.535 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:16.305 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:17.117 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:19.718 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:20.507 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:22.051 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:23.167 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:23.968 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:25.534 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:27.151 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:28.518 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:29.151 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:30.717 licaishi[12659:60b] [WebViewController viewDidLoad 130]:
2015-07-29 11:39:31.917 licaishi[12659:60b] [WebViewController viewDidLoad 130]:

停止操作, 静态2分钟左右, 系统自动会调用 dealloc

2015-07-29 11:41:20.993 licaishi[12659:60b] [WebViewController dealloc 135]:
2015-07-29 11:41:20.995 licaishi[12659:60b] [WebViewJavascriptBridge dealloc 94]:
2015-07-29 11:41:20.997 licaishi[12659:60b] [WebViewController dealloc 135]:
2015-07-29 11:41:20.998 licaishi[12659:60b] [WebViewJavascriptBridge dealloc 94]:
2015-07-29 11:41:20.999 licaishi[12659:60b] [WebViewController dealloc 135]:
2015-07-29 11:41:20.999 licaishi[12659:60b] [WebViewJavascriptBridge dealloc 94]:
2015-07-29 11:41:21.000 licaishi[12659:60b] [WebViewController dealloc 135]:
2015-07-29 11:41:21.001 licaishi[12659:60b] [WebViewJavascriptBridge dealloc 94]:
2015-07-29 11:41:21.002 licaishi[12659:60b] [WebViewController dealloc 135]:
2015-07-29 11:41:21.002 licaishi[12659:60b] [WebViewJavascriptBridge dealloc 94]:
2015-07-29 11:41:21.003 licaishi[12659:60b] [WebViewController dealloc 135]:

问题是 如果操作不停止, 就会一直创建新的控制器, 导致内存警告

能优化成立即释放吗? 比如 navigationController pop 对应控制器的时候.

sanshanchuns avatar Jul 29 '15 03:07 sanshanchuns

JS会在垃圾回收时释放,目前找到手动回收的方法。

bang590 avatar Jul 29 '15 08:07 bang590

公司内发现一个很有才的方法强制进行垃圾回收:

(function(){
  var x = {};
  for(var i = 0;i<10000;i++){
    x[i]=[];
  };
  x=null;
})();

bang590 avatar Aug 17 '15 12:08 bang590

In this article, the author mentioned a way to force GC:

for(i=0; i<4100; i++){
  a = .5;
}

Never tried myself, but may be helpful.

leafduo avatar Sep 05 '15 09:09 leafduo

能不能在JPForwardInvocation函数中,将参数slf封装成JPBoxing对象传过去? [argList addObject:[JPBoxing boxWeakObj:slf]]; (JPEngine line:437)

honghewang avatar Oct 29 '15 09:10 honghewang

@bang590 navigationController pop 时为什么要在js垃圾回收时进行释放,这个不是oc层面的问题么?有些不解?

whihail avatar Nov 09 '15 13:11 whihail

@bang590 ,“JS会在垃圾回收时释放,目前找到手动回收的方法。”;请问,如何手动回收?

fanghongjia avatar Nov 11 '15 11:11 fanghongjia

@fanghongjia 你说你找到了手动回收的方法,请问怎么回收呢?

whihail avatar Nov 11 '15 13:11 whihail

如何立即手动回收?

joliylee avatar Jan 06 '16 07:01 joliylee

强制垃圾回收这个方法, 好像在频繁push pop 的时候有时会让应用卡死

bingbingBang avatar Jul 21 '16 09:07 bingbingBang

到底这个问题怎么解决呢?这里好像没给出具体的解决办法吧? @bang590

Zhangyanshen avatar Oct 10 '16 02:10 Zhangyanshen

如何立即回收内存? @joliylee @Zhangyanshen @bang590

lungfei avatar Mar 15 '17 11:03 lungfei