7

私は、Web Worker を使用して長時間実行される CPU 集中型の操作を作成しようとしていますが、これらを使用してクライアントの CPU を 100% にプッシュすることは可能であるようです。( Web Worker はマルチコア CPU を 100% 利用できますか?を参照してください。 )

Web ワーカーの CPU 使用率を制限する効果的な方法を知っている人はいますか?

4

1 に答える 1

2

確かに方法はあります。

計算を構造化して、終了する前に作業の一部を実行する関数を繰り返し呼び出すことによって実行できるようにします。終了する直前に setTimeout を使用して、ワーカー関数の新しい呼び出しを数ミリ秒でスケジュールします。待機時間は、使用する CPU 時間を最小限に抑えるように調整できます。

function doWork () {
  var timer = new Date ();

 // do n cyles of work here


 timer = new Date () - timer; // time spent working 
 setTimeout (doWork, timer);  // wait an equivalent time for 50% processor load
}
于 2012-10-21T17:23:14.667 に答える