Test name | Executions per second |
---|---|
vec3 Arr | 132.5 Ops/sec |
vec3 obj | 110.0 Ops/sec |
vec3 arr2 | 0.3 Ops/sec |
function addObj(out, a, b) {
out[0] = a[0] + b[0];
out[1] = a[1] + b[1];
out[2] = a[2] + b[2];
return out;
};
function addArr(out, oo, a, b, ao,bo) {
out[0+oo] = a[0+ao] + b[0+bo];
out[1+oo] = a[1+ao] + b[1+bo];
out[2+oo] = a[2+ao] + b[2+bo];
};
function addArr2(out, a, b, oo, ao,bo) {
out[0+(oo || 0)] = a[0+(ao || 0)] + b[0+(bo || 0)];
out[1+(oo || 0)] = a[1+(ao || 0)] + b[1+(bo || 0)];
out[2+ (oo || 0)] = a[2+(ao || 0)] + b[2+(bo || 0)];
};
var A = new Float32Array(300);
var B = new Float32Array(300);
var O = new Float32Array(300);
for (var i = 0;i < 10000;++i) {
for (var j=0;j< 100;++j) {
addArr(O,j*3,A,B,j*3,j*3);
}
}
var A = [];
var B = [];
var O = [];
for (var x=0;x<100;++x) {
A.push(new Float32Array(3));
B.push(new Float32Array(3));
O.push(new Float32Array(3));
}
for (var i = 0;i < 10000;++i) {
for (var j=0;j< 100;++j) {
addObj(O[j],A[j],B[j]);
}
}
var A = new Float32Array(300);
var B = new Float32Array(300);
var O = new Float32Array(300);
for (var i = 0;i < 10000;++i) {
for (var j=0;j< 100;++j) {
addArr2(O,j*3,A,B,j*3,j*3);
}
}