Javascript setTimeout和clearTimeout的Algorihtm/渐近性能
在常用浏览器(Chrome、FF、IE)中,实现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
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,您是正确的,在大多数(基本上所有)情况下,这不太可能重要。