3

表示を更新するデータを 1 秒ごとにサーバーにポーリングする Web アプリケーションがあります。ブラウザーの CPU 使用率が 6% から 30% に徐々に (一晩で) 増加し、アプリの操作や動作の変化は見られません。

この問題は、Chrome で実行する次のコードで簡単に再現できます。より顕著な効果を得るために、ポーリング間隔を100 ミリ秒に減らしました。

<html>
<body>
<script>
var i = 0;
var xhr = new XMLHttpRequest();
xhr.onload = function() {
    console.log("response", i++);
    setTimeout(send, 100);
}
function send() {
    xhr.open("GET", "/", true);
    xhr.send();
}
send();
</script>

このコードは、次のような任意の Web サーバーで簡単に実行できます。

python -m SimpleHTTPServer 8888

この例では、明確な理由もなく CPU 使用率が非常に急速に増加しています。私は処理を行わず、 setIntervalではなくsetTimeoutを使用するため、リクエストが重複することはありません。

Chrome (および Safari) でテストしていますが、CPU 使用率が非常に急速に増加しています。理由はありますか?

4

1 に答える 1

2

コンソール出力に100ミリ秒ごとに新しい行を入力しているため;)

于 2013-08-18T15:54:20.960 に答える