首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Javascript中,一堆小的setInterval循环和一个大的循环,哪个更快?

在Javascript中,一堆小的setInterval循环和一个大的循环,哪个更快?
EN

Stack Overflow用户
提问于 2010-04-27 13:27:11
回答 3查看 714关注 0票数 5

只是想知道是否值得做一个单片循环函数,或者只是在需要的时候添加循环。

大循环选项只是一个用add函数动态添加的回调循环。

添加一个函数如下所示

代码语言:javascript
运行
复制
setLoop(function(){
    alert('hahaha! I\'m a really annoying loop that bugs you every tenth of a second');
});

setLoop会将该函数添加到单片循环中。

那么,这在性能上是否有价值,或者我应该只使用setInterval进行大量的小循环吗?

游戏是这样的

http://thinktankdesign.ca/metropolis/

以及它的所有库

http://thinktankdesign.ca/metropolis/scripts/base.js

http://thinktankdesign.ca/metropolis/scripts/menu.js

http://thinktankdesign.ca/metropolis/scripts/grid.js

http://thinktankdesign.ca/metropolis/scripts/cursor.js

http://thinktankdesign.ca/metropolis/scripts/game_logic/controls.js

http://thinktankdesign.ca/metropolis/scripts/game_logic/automata.js

如果我坚持使用单个循环,由于动画循环的数量,将会有数千个循环。

这个游戏是一个塔楼建造者和复杂的东西,如电梯和汽车/peds。更不用说自动机的循环,控制VIP和火灾等事件。当功能正常时(一两年),它将很像模拟铁塔,但它是等距的,而不是侧滚轴。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-27 13:30:40

将它们全部单独调度意味着在一些子任务和另一些子任务之间可能会发生一些事情(比如处理用户交互事件等)。使用一个大的单片循环,循环的每个循环将执行该循环上的所有内容,然后将控制返回给用户输入。因此,如果你真的要做很多事情,最好是单独安排它们,让浏览器更“聪明”地知道什么时候该做什么。

例外情况是,如果您实际上打算/要求在同一“周期”中发生的所有事情都不相互偏移,在这种情况下,将需要“大循环”方法来确保它们都在完全相同的时间触发(或者至少在执行时间允许的情况下尽可能接近)。

票数 3
EN

Stack Overflow用户

发布于 2010-04-27 13:30:00

我可以想象你可以只使用setInterval,保持单独的循环来控制每个循环将会给你更好的灵活性,除非每个单独的项目都需要排队,但即使在这一点上,我也看不出你会从哪里获得重要的性能改进。

票数 2
EN

Stack Overflow用户

发布于 2010-04-27 13:42:19

如果没有足够的细节,你的问题是不可能正确回答的:

  • 您的单片循环有多大?
  • 您希望添加多少个小循环?
  • 这些小循环有多小?
  • 您试图用您的循环实现什么?
  • 小循环是否会相互作用,例如更改变量的关系或closures?
  • Would的值是否期望循环冗余捕获丢失,否则通过逻辑consideration?

进行转义

没有足够的细节,每个答案都是正确的,从而使你的问题变得毫无意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2718920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档