Javascript setTimeout和clearTimeout的Algorihtm/渐近性能

Javascript setTimeout和clearTimeout的Algorihtm/渐近性能,javascript,algorithm,big-o,settimeout,Javascript,Algorithm,Big O,Settimeout,在常用浏览器(Chrome、FF、IE)中,实现setTimeout和clearTimeout的算法是什么 首先想到的算法是,可以在最小堆上维护超时,并按运行时间排序。超时首先从堆中移除 1 / \ 2 7 / \ 5 5 (where numbers are the UTC time, or something) 这将使性能变得不稳定 setTimeout - O(log n) clearTimeout - O(n) setTimeout和clea

在常用浏览器(Chrome、FF、IE)中,实现
setTimeout
clearTimeout
的算法是什么

首先想到的算法是,可以在最小堆上维护超时,并按运行时间排序。超时首先从堆中移除

     1
    / \
   2   7
  / \
 5  5

(where numbers are the UTC time, or something)
这将使性能变得不稳定

setTimeout   - O(log n)
clearTimeout - O(n)

setTimeout
cleartimout
的性能之间是否存在这样的差异,或者使用了不同的算法?(例如,使用堆,但使用“禁用”标志标记超时,而不是立即查找并从堆中删除它们。)

setTimeout
setInterval
都是堆叠的,在清除所有其他阻塞活动后,在最小间隔后运行。无论您的
渐进性能的理论含义是什么,实际上,性能取决于浏览器预期要做的所有其他事情。@MikeW,您是正确的,在大多数(基本上所有)情况下,这不太可能重要。