CNode

内存泄漏,求大神解释

问答
AAcceptedlc发布于11 年前最后回复11 年前8 回复5307 浏览0 收藏

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

查看回复

回复 (8)

A
Acceptedlc#1·11 年前

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

H
HuarenYu#2·11 年前

1毫秒,我也是醉了。

A
Acceptedlc#3·11 年前
引用 HuarenYu1毫秒,我也是醉了。

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

H
HuarenYu#4·11 年前
引用 Acceptedlc@HuarenYu 时间长的话要等多久啊 自豪地采用 CNodeJS ionic

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

A
Acceptedlc#5·11 年前
引用 HuarenYu@Acceptedlc v8的垃圾回收有一定的触发机制,并不是实时回收。

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

Y
yunnysunny#6·11 年前

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

H
HuarenYu#8·11 年前
引用 Acceptedlc@HuarenYu 大神,求v8,gc触发条件文档 自豪地采用 CNodeJS ionic

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

参与回复
登录后即可参与回复。登录