【问题标题】:Limiting Web Worker CPU Utilization?限制 Web Worker CPU 利用率?
【发布时间】:2012-10-22 11:56:07
【问题描述】:

我正在考虑使用 Web Workers 编写一个长时间运行的 CPU 密集型操作,并且似乎可以使用这些将客户端的 CPU 推到 100%。 (见Can Web Workers utilize 100% of a multi-core CPU?

有没有人知道任何有效的方法来限制网络工作者的 CPU 利用率?

【问题讨论】:

  • 在尝试给你答案之前,你有没有问过自己给客户端加载这样的任务是否合理?
  • 我正在专门研究在 HTML5 中构建的客户端上分布式计算的可行性的研究。我目前实际上正在尝试弄清楚这个项目的合理性,而客户端的 CPU 利用率是我当前的问题。

标签: javascript multithreading html web-worker


【解决方案1】:

确实有办法。

构造您的计算,以便它们可以通过重复调用一个函数来完成,该函数在退出之前执行部分工作。就在退出之前,使用 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
}

【讨论】:

  • 这完全取决于客户端的硬件对吗?我希望找到一种可以将所有客户的利用率降低到特定百分比的方法。
  • 对于硬件,我想你是指性能。是的,但是您可以测量工作所花费的时间,然后等待适当的时间来平均负载。我已经更新了示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2013-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多