30

我一直试图找出网络工作者在分配处理器负载方面的能力。我还没有找到任何可以让我的四核 2600k 甚至达到 50% 的演示,更不用说 100% 了。

这是我试图最大化我的 CPU 的网络工作者演示:

http://nerget.com/rayjs-mt/rayjs.html

(如果您使用 firebug /chrome-inspect-element 进入页面的 HTML 并使画布更大,您可以使其光线跟踪成为更大的图像 - 我将我的设置为 1920 x 1080)

即使选择了 4、8、16 名工作人员,我的 CPU 利用率也无法超过每个核心 25% 左右。

有谁知道您是否可以通过网络工作者使用 100% 的 CPU?

(我使用的是谷歌浏览器。)

4

2 回答 2

31

这在我的 2500K 上使用了 100%:

var code = "while(true){}";
var URL = window.webkitURL || window.URL;
var bb = new Blob([code], {type : 'text/javascript'});

code = URL.createObjectURL(bb);

new Worker(code);
new Worker(code);
new Worker(code);
new Worker(code);

http://jsfiddle.net/MTJ27/81/

于 2012-08-08T19:14:26.343 回答
11

我已经使用新的 blob 构造函数重写了 Esailija 的答案。BlobBuilder 现在已过时,因此您必须改用 Blob(),请参阅此处了解详情:http: //updates.html5rocks.com/2012/06/Don-t-Build-Blobs-Construct-Them

window.URL = window.URL || window.webkitURL;

var blob = new Blob(["while(true){}"], {type: 'text/javascript'});

code = window.URL.createObjectURL(blob);

new Worker(code);
new Worker(code);
new Worker(code);
new Worker(code);

http://jsfiddle.net/MTJ27/15/

于 2013-06-11T21:40:09.877 回答