JavaScript内部:事件循环以什么时间间隔运行?

时间:2016-08-23 19:24:32

标签: javascript node.js v8 libuv

这是一个关于JavaScript内部的问题。

假设我有10个异步任务,所有这些任务都需要x个秒才能运行。在等待响应时,脚本处于空闲状态。

在后台JavaScript引擎询问“任务队列中是否有任何内容”。据我所知,这是一个循环。因此,事件循环。我知道在Node中这是用Libuv实现的。我读过这篇文章解释了一点:https://nikhilm.github.io/uvbook/basics.html

JavaScript引擎是否对此事件循环的运行频率施加任何限制,以平衡应用程序的性能?它是否以设定的间隔运行?

如果我有任何关闭,请纠正我。我对这个事件循环运行的间隔感兴趣。

1 个答案:

答案 0 :(得分:1)

JavaScript方面本身没有循环。但是在libuv中有一个。基本上libuv将等到最接近的计时器命中或发生i / o操作。然后它将在C中触发一个回调,它调用传递的C ++函数Node,然后触发JavaScript代码执行。

查看this presentation,特别是从幻灯片33开始的部分。