February 2018
Intermediate to advanced
298 pages
8h 22m
English
Why not combine the good parts of atomics and the good parts of the speed of local variables sitting in the CPU register? Here we are:
// 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); let count = 0; for(let i=0;i<limit;i++) { count += 1; } Atomics.add(arr, 0, count); postMessage('done')}
Here, from our last implementation, we took Atomics.add out of the loop to avoid calling it a billion times. Instead, we performed the work assigned to ...
Read now
Unlock full access