我在 Javascript 中做了很多递归,为了防止堆栈溢出,我一直在使用 setTimeout。这是一个快速的理论示例:
go(){
setTimeout(function(){
x++;
go();
},1);
}
我还有一个x
每隔几秒就会记录到控制台的函数,但这不是问题。我所看到的是,无论我为超时设置什么值,我在示例中使用了 1,脚本每秒只能运行 1000 次。我正在做数亿级别的递归,所以这还不够快。当我将超时值设置为 0、0.1 或 1/10 时,我仍然每秒只能获得大约 1000 次。我尝试使用 32 位和 64 位浏览器(Chrome 和 Firefox)无济于事。
我怎样才能将速度提高一个档次?另外,我对这一切都比较陌生,所以如果解决方案是一个简单的解决方案,那就太棒了。
哦,忘了提:如果我完全删除 setTimeout,我每次都会溢出堆栈。
谢谢您的帮助!