Ответ 1
как я понимаю, вы не можете напрямую использовать arrayBuffer [i], вы должны передать его в какой-нибудь контейнер (например, Int8Array). Я сделал следующий пример http://jsfiddle.net/mLurz/, попробовал с различными типизированными массивами из this список и Uint32Array показали лучшую производительность
var i;
var dist = 0;
var max = Math.pow(2,32);
var buf1 = new ArrayBuffer(1024);
var x = new Uint32Array(buf1);
for (i = 0; i < 256; ++i) {
x[i] = Math.random()*max;
}
var buf2 = new ArrayBuffer(1024);
var y = new Uint32Array(buf2);
for (i = 0; i < 256; ++i) {
y[i] = Math.random()*max
}
console.time('Uint32Array');
for (var j = 0; j < 1000000; ++j) {
for (i = 0; i < 256; ++i) {
dist += y[i]^x[i];
}
}
console.timeEnd('Uint32Array');