首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取JavaScript中的CPU核数?

获取JavaScript中的CPU核数?
EN

Stack Overflow用户
提问于 2010-07-20 19:35:20
回答 4查看 22.2K关注 0票数 68

有没有一种方法可以确定JavaScript中可用CPU核心的数量,以便您可以根据该数量调整web worker的数量?

EN

回答 4

Stack Overflow用户

发布于 2010-07-20 19:37:02

不,没有,除非你使用一些ActiveX。

票数 18
EN

Stack Overflow用户

发布于 2013-06-07 17:45:31

票数 14
EN

Stack Overflow用户

发布于 2014-02-17 08:30:49

这是我拼凑出来的一个相当快速的并发估计器...它还没有经过太多的测试:

http://jsfiddle.net/Ma4YT/2/

下面是workers运行的代码(因为我有一个jsfiddle链接,所以需要一个示例):

// create worker concurrency estimation code as blob
var blobUrl = URL.createObjectURL(new Blob(['(',
  function() {
    self.addEventListener('message', function(e) {
      // run worker for 4 ms
      var st = Date.now();
      var et = st + 4;
      while(Date.now() < et);
      self.postMessage({st: st, et: et});
    });
  }.toString(),
')()'], {type: 'application/javascript'}));

估计器有大量的Worker在短时间内(4ms)运行,并报告他们运行的时间(不幸的是,performance.now()在Web Worker中不可用以获得更准确的计时)。然后,主线程检查以查看在同一时间内运行的工作线程的最大数量。这个测试被重复多次,以获得一个像样的样本来产生估计值。

因此,主要的想法是,给定足够小的工作量,只有在有足够的内核支持该行为的情况下,才应该安排工人同时运行。这显然只是一个估计,但到目前为止,对于我测试过的几台机器来说,它是相当准确的--这对于我的用例来说已经足够好了。可以增加样本数量以获得更准确的近似值;我只使用10,因为它很快,我不想浪费时间进行估计,而不是仅仅完成工作。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3289465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档