JavaScriptを使用していて、このことに気づきました。使用できます
var i=0;
var startingTime=new Date().getTime();
setInterval("foo()",1);
function foo() {
i+=1;
if ($("#foodiv").text()==i) {
//we detected a doubled value (parallel execution)
$("#repdiv").append("[repetition on "+i+"]");
}
$("#foodiv").html(i);
$("#timediv").html(Math.floor((new Date().getTime()-startingTime)/1000));
}
しかし、私が読んで自分で試してみると、時間は 1ms ではなく、少なくとも 10ms か何かです。実際、10 秒後、i の値は 2300/2400 前後であり、予想どおり 10000 ではありません。
これは、手順の可能な最小時間係数です??? 確かにいいえ。私がこれを試してみると:
<html><head>
<script language="javascript" type="text/javascript" src="jquery-1.4.min.js"></script>
<script type="text/javascript">
var i=0;
var startingTime=new Date().getTime();
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
setInterval("foo()",1);setInterval("foo()",1);setInterval("foo()",1);
function foo() {
i+=1;
if ($("#foodiv").text()==i) {
//we detected a doubled value (parallel execution)
$("#repdiv").append("[repetition on "+i+"]");
}
$("#foodiv").html(i);
$("#timediv").html(Math.floor((new Date().getTime()-startingTime)/1000));
}
</script>
</head>
<body>
<div id="foodiv"></div> (counter)
<br/>
<div id="timediv"></div> (seconds passed)
<br/>
<div id="repdiv"></div>
<br/>
</body>
</html>
カウンターは非常に速く進み、10 秒後には値が 12000 になります !!!!. 呼び出しが並行して実行されないため、それは私にとっては説明できません (または、少なくとも異なる呼び出しに対して i の値を 2 倍にして、repdiv div を計算することができます)。
誰かが私にそれを説明できますか?これらすべての呼び出しによってCPUが非常にストレスを受けていることは知っていますが、少なくとも驚くほど高速になります.
あなたのすべての回答とフォーラムの他のクエストを読み、私の考えを確認しました。しかし、本当の問題は、なぜ!? 複数の連続呼び出しを実行して時間を大幅に短縮できるのに、制限を 15ms に設定したのはなぜですか? この複数のコールバック システムは適切な方法ではないと確信していますが、私はそれを行うことができ、CPU 負荷を飽和させる可能性があります。