如何计算出在Java语言中循环可以运行的最大次数?

问题描述 投票:1回答:3

在Javascript中,如果有以下代码:

var j = 0;

for(i=0; i<j; i++){
  //JS Code
}

在此代码中,变量j (即浏览器将不挂起的最大值)的最大值取决于什么因素将取决于(例如,可能是Machine的RAM或Processor,或者可能是在其中执行的代码循环)?

这个最大允许值可以计算吗?

这是必需的,因为需要处理的数组很大。

感谢您的任何建议。

javascript memory-management loops for-loop cpu-usage
3个回答
1
投票

不,您无法计算出来,因浏览器而异。某些浏览器按时间执行操作(例如,您的代码已运行X秒钟以上而没有返回浏览器;在Firefox 7上,默认值为10秒,但the user can change it),其他浏览器按操作次数(IE, for instance ])。

您最好的选择是重构代码,这样您甚至可以避免接近极限。如果您需要做大量工作,请将其分成多个块,然后使用setTimeout(超时值为0)一个接一个地运行这些块。这会返回到浏览器(超过0毫秒;确切的时间取决于浏览器以及页面上发生的其他事情。)

这是一个在100,000个迭代块中计数到10,000,000的示例:


1
投票

在处理大量数据时保持UI响应的一种常见做法称为分块。您可以分割项目组,并使用setInterval或setTimeout结束每个组的循环。


0
投票

JavaScript中的最大安全整数是9007199254740991,您可以在浏览器的控制台中检查它

© www.soinside.com 2019 - 2024. All rights reserved.