我正在考虑使用Web Workers编写一个长时间运行的CPU密集型操作,并且似乎可以将客户端的CPU推送到100%。 (见Can Web Workers utilize 100% of a multi-core CPU?)
有没有人知道限制网络工作者CPU利用率的任何有效方法?
答案 0 :(得分:2)
确实有办法。
构建您的计算,以便通过重复调用在退出之前执行部分工作的函数来完成它们。在退出之前,使用setTimeout在几毫秒内调度对worker函数的新调用。可以调整等待时间以使用更少的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
}