В статье тесты Firefox, Safari и Opera и сюжеты производительности графики:
http://ejohn.org/blog/analyzing-timer-performance/
Firefox 2, Opera и Safari все имеют нижнее окно 10мс для задержки
Для старых браузеров вы можете сделать тест, подобный тому, который указан в этой статье. Я только что проверил тест, который у меня был с setInterval
, используя интервал 10 мс в IE6, и я получил среднее значение 55ms. setTimeout
кажется ниже на 35ms.
Я проверил тест в Chromium и получил ~ 11ms среднее значение для тайм-аута 10 мс. Я пробовал его с интервалом 4 мс и 1 мс и получил ~ 4,5 мс для обоих. Кроме того, имейте в виду, что цифры могут различаться в разных операционных системах.
Если вы заинтересованы, вот тестовый код:
<script>
// number of times to call setTimeout before calculating average
var ITERATIONS = 200;
window.onload = function()
{
testTimeout(10, +new Date, 0, 0);
}
// calls setTimeout repeatedly at a specified interval, tracking the amount
// of time that passes between successive calls
function testTimeout(interval, last, sum, ii)
{
var time = +new Date;
var difference = time - last;
sum += difference;
if (ii % ITERATIONS == 1)
{
document.body.innerHTML = sum/ITERATIONS;
sum = 0;
}
window.setTimeout(
function() {
testTimeout(interval, time, sum, ii + 1)
}, interval);
}
</script>
[См. MDN.] (Https://developer.mozilla.org/en/DOM/window.setTimeout#Minimum_delay_and_timeout_nesting). Хотя каждый раз, когда вы укажете, никогда не бывает надежным. – pimvdb
Вы всегда можете написать тест ... –
@BradChristie Как вы используете JavaScript-код UnitTest? TDD? – InspiredJW