February 2018
Intermediate to advanced
298 pages
8h 22m
English
Now we know the reason for our garbage value, and, with atomics, it should be easy to fix the problem. Right? Wrong.
There is a massive performance penalty on using atomic locking a billion times. Let's look at our updated worker.js code now:
// worker.jslet sharedMem;addEventListener('message', ({data}) => { //console.log(data); if(data.message == 'sab') { sharedMem = data.memory; console.log('Memory ready'); } if(data.cmd == 'start') { console.log('Iterations ready'); startCounting(data.iterations); }});function startCounting(limit) { const arr = new Uint32Array(sharedMem); for(let i=0;i<limit;i++) { Atomics.add(arr, 0, 1); } postMessage('done')}
This is similar to our previous implementation of the ...
Read now
Unlock full access