この記事は、Firefox、Safariの、オペラやプロットパフォーマンスグラフをテスト:
http://ejohn.org/blog/analyzing-timer-performance/
のFirefox 2、オペラ、およびSafariのすべてが遅れ
のための10msの下のウィンドウを持っています
古いブラウザでは、その記事のようなテストを行うことができます。私はちょうど前にIE6で10ms間隔を使用してsetInterval
のテストを実行しました。平均は55msです。 setTimeout
は35msにあるようです。
私はChromiumでテストを実行し、10msのタイムアウトに対して〜11msの平均を得ました。私は4msと1msの間隔でそれを試して、両方のため〜4.5msを得た。また、番号はオペレーティングシステムによって異なる可能性があります。
あなたが興味を持っている場合は、ここではテストコードです:
<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 UnitTest JavaScriptコードはどうやってですか? TDD? – InspiredJW