为什么js中会产生堆栈丢失而导致内存泄露的情况?
发布于 5天前 作者 XGHeaven 172 次浏览 来自 问答

如题,我在https://cnodejs.org/topic/516b64596d38277306407936文章中看到这么一句话

我们通过中间件的形式,引入domain来处理异步中的异常。当然,domain虽然捕捉到了异常,但是还是由于异常而导致的堆栈丢失会导致内存泄漏,所以出现这种情况的时候还是需要重启这个进程的,有兴趣的同学可以去看看domain-middleware这个domain中间件。

我想知道为什么异常会导致堆栈退出而导致内存泄露?

3 回复

node底层还是c/c++,v8构建的, 异常导致堆栈丢失 C++异常中的堆栈跟踪, 从而使用过的内存没有清理导致泄漏

@Tei320 但是我觉得js中的异常应该是v8引擎模拟的吧,而不是真的有c/c++引发的吧?

domain这个api已经被官方标记为抛弃了,就不要用了,如果出现未捕获异常,目前唯一的办法就是进程退出,重启。 自豪地采用 CNodeJS ionic

回到顶部