Javascript setTimeout/clearTimeout是否昂贵?

Javascript setTimeout/clearTimeout是否昂贵?,javascript,Javascript,我有如下几点: var myTimeout; function delayStuffUntil( when ){ if( myTimeout) clearTimeout( myTimeout ); myTimeout = setTimeout( stuff, when - Date.now() ); } delayStuffUtil将被大量调用,并且它很可能会在一行中多次被调用时使用相同的值 setTimeout/clearTimeout是否足够昂贵,以至于我应该费心检查当前的whe

我有如下几点:

var myTimeout;
function delayStuffUntil( when ){ 
  if( myTimeout) clearTimeout( myTimeout );
  myTimeout = setTimeout( stuff, when - Date.now() );
}
delayStuffUtil
将被大量调用,并且它很可能会在一行中多次被调用时使用相同的

setTimeout
/
clearTimeout
是否足够昂贵,以至于我应该费心检查当前的
when
与上次的
when
值(并且只有在不同时才更改计时器)


我曾想过这样做,但事实是,
when
比较起来有点麻烦,我认为过早的优化是所有问题的根源,所以我可能在不需要的时候就开始工作。
设置超时
清除超时
本身并不昂贵

实际上,功能“东西”是你必须担心的


如果stuff需要很长时间才能运行,那么如果调用太频繁,它可能会阻塞UI。

所以我发现了一些性能问题,在鼠标移动时调用clearTimeout和setTimeout(在chrome上)。它似乎比你想象的要贵。不知道为什么

我没有关于
setTimeout
cleartimout
的基准,但我倾向于说“不”,因为它们在每个JS动画框架中的级别都很低
stuff
将被调用相同的次数。谢谢