0

假设我被迫以这种野蛮的方式睡觉。

我不能使用事件(例如 setTimeout),它不在问题的约束范围内,并且之前已经深入讨论过这样做。

function sleep(milliseconds) {
   var start = new Date().getTime();

   while (new Date().getTime() < start + milliseconds){
        // need some NOP here
   }
}

我只想知道,你能想出我可以插进去的东西吗?最好是需要很长时间才能运行的单个语句(也许需要时间来 malloc 一个巨大的区域?)

花费大量的 CPU 时间是可以的,即使它在技术上不是 NOP。此外,睡过头也没问题。冻结浏览器不是问题。我最感兴趣的是最小化在睡眠期间运行的语句数量,所以基本上:执行时间最长的单个语句并没有真正“做”任何事情。

4

0 回答 0