Могут ли веб-работники использовать 100% многоядерного процессора?
Я пытаюсь выяснить, насколько способны веб-работники распределять нагрузку на процессор. Мне еще предстоит найти демо-версии, которые, похоже, смогут получить мой четырехъядерный процессор 2600k даже до 50%, не говоря уже о 100%.
Здесь демонстратор веб-рабочего, который я пробовал максимально увеличить свой процессор:
http://nerget.com/rayjs-mt/rayjs.html
(Если вы перейдете на страницу HTML с элементом firebug/chrome-inspect и сделаете холст более крупным, вы можете сделать его более ярким - я установил мой размер до 1920 x 1080)
Даже если выбрано 4, 8, 16 рабочих мест, я не могу получить загрузку процессора выше 25% на ядро.
Кто-нибудь знает, можете ли вы использовать 100% процессора через веб-работников?
(Я использую Google Chrome.)
Ответы
Ответ 1
Это использует 100% на моем 2500K:
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/
Ответ 2
Я переписал Esailija, используя новый конструктор blob. BlobBuilder теперь устарел, поэтому вы должны использовать Blob() вместо этого, см. Здесь для deets: 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/