我正在使用 NodeJs 并需要调用无限函数,但我不知道什么是最佳性能。
递归函数
function test(){
//my code
test();
}
设置时间间隔
setInterval(function(){
//my code
},60);
设置超时时间
function test(){
//my code
setTimeout(test,60);
}
我想要最好的性能而不崩溃服务器。我的代码有几个算术运算。
感谢任何优化 JavaScript 性能的建议。
小心……你的第一个代码会阻塞 JavaScript 事件循环。
基本上,在 JS 中,类似于应该处理的函数列表。你打电话时setTimeout
, setInterval
or process.nextTick
您将给定的函数添加到此列表中,当正确的时间到来时,它将被处理。
第一种情况下的代码永远不会停止,因此它永远不会让事件列表中的其他函数被处理。
第二个和第三个案例都很好......只是有一点区别。
例如,如果您的函数需要处理 10 毫秒,则间隔将为您的 60 毫秒。
- 带有 setInterval 的函数将按时间处理:0-10、60-70、120-130,...(因此调用之间只有 50ms 的延迟)
- But with setTimeout it will be:
- 如果您先调用 func:0-10、70-80、140-150、210-220,...
- 如果您先调用 setTimeout:60-70、130-140、200-210,...
因此,区别在于函数启动之间的延迟,这在某些基于间隔的系统(例如游戏、拍卖、股票市场等)中可能很重要。
祝你的递归好运:-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)