在节点js中执行服务器期间的内存状态

时间:2014-07-11 00:54:14

标签: javascript node.js

我是在节点js中设计服务器的新手

我知道节点js在一个进程中运行,

我的怀疑是

1)函数的局部变量的内存状态是否在执行后存储   - 例如:函数可能会启动一些异步方法,即使在函数执行后,回调函数也会使用这些变量。

所以假设以上是真的

2)每次调用(服务器url)时,其回调都会被请求,响应变量调用。因此内存状态必须连续增加(因为每个url调用的内存状态都是存储的,即因为变量的状态在回调onRequest(请求,响应)被存储)因此它应该在某些时间点由于内存不足而崩溃。这会发生吗?

1 个答案:

答案 0 :(得分:2)

  

函数的局部变量的内存状态是否在执行后存储

是。这称为closure。只要您的回调处于活动状态,其范围内的变量就可用。

  

每次调用(服务器url)时,都会使用请求,响应变量调用其回调。因此内存状态必须持续增加,因此在某些时间点由于内存不足而崩溃。

没有。当所有工作完成后,并且没有未完成的(异步)回调确实引用您的变量,它们将是garbage collected

  

这会发生吗?

是的,您可以编写导致内存泄漏的错误代码。