内存泄漏,求大神解释
发布于 10 年前 作者 Acceptedlc 4397 次浏览 最后一次编辑是 8 年前 来自 问答

代码: 屏幕快照 2015-05-11 下午5.51.53.png 开始的内存: 屏幕快照 2015-05-11 下午5.52.08.png 大约半小时后 屏幕快照 2015-05-11 下午5.52.18.png

8 回复

我觉得是 entity.a = entity.fun();泄漏的。 但是不知道为什么,求各位大神解释

1毫秒,我也是醉了。

@HuarenYu 时间长的话要等多久啊 自豪地采用 CNodeJS ionic

@Acceptedlc v8的垃圾回收有一定的触发机制,并不是实时回收。

@HuarenYu 大神,求v8,gc触发条件文档 自豪地采用 CNodeJS ionic

第14行entity.a = entity.fun();。 首先注意到entity的fun函数是没有返回值的,这样entity的值变成了undefined,那么接着在下次循环的时候还做++干啥,完全没有了意义。 其次,定时器的间隔太小了,垃圾回收的速度赶不上临时变量增长的速度。

@yunnysunny 谢啦 自豪地采用 CNodeJS ionic

@Acceptedlc v8的没有研究过,类比一下java吧,jvm的垃圾回收线程的执行优先级是很低的,所以当空闲时gc线程得到执行会触发垃圾回收,还有就是当内存分配紧张时也会触发垃圾回收,当然gc还有很多种机制。

回到顶部