获取在Java中的CPU核心数量?

有没有一种方法来确定在JavaScript中可用的CPU核心数量,以便您可以调整networking工作者的数量取决于?

是的, navigator.hardwareConcurrency 。 在Chrome,Firefox,Edge,Opera和Webkit中本地支持; 所有的浏览器都支持polyfill 。

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

您可以尝试使用以下方法估计核心数量: https : //github.com/oftn/core-estimator

演示: http : //eligrey.com/blog/post/cpu-core-estimation-with-javascript

这是一个相当快速的并发估计器,我一起入侵…它还没有经过太多的testing:

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

这里是工作人员运行的代码(因为我有一个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'})); 

估计员有大量的工作人员运行一段时间(4ms),并报告他们跑的时间(不幸的是,在Web Workers中不能使用performance.now()来获得更准确的时间)。 主线程然后检查在同一时间内正在运行的最大数量的工作人员。 这个testing重复多次,以得到一个体面的样本产生一个估计。

所以主要的想法是,只要有足够的一小部分工作,只要有足够的内核来支持这种行为,工人就应该同时运行。 这显然只是一个估计,但到目前为止,对于我testing过的几台机器来说,这是相当准确的 – 这对我的使用情况来说已经足够了。 可以增加样本的数量以获得更准确的近似值; 我只用10,因为它很快,我不想浪费时间估计,只是完成工作。

JavaScript远离这种硬件细节,并没有合法的机制来查询它们。