Doodle3D-Slicer/three.js-master/test/benchmark/core/Vector3Length.js

88 lines
1.4 KiB
JavaScript
Raw Normal View History

2015-06-12 15:58:26 +02:00
THREE = {};
THREE.Vector3 = function ( x, y, z ) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
};
THREE.Vector3.prototype = {
constructor: THREE.Vector3,
lengthSq: function () {
return this.x * this.x + this.y * this.y + this.z * this.z;
},
length: function () {
return Math.sqrt( this.lengthSq() );
},
length2: function () {
return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );
}
};
var a = [];
for ( var i = 0; i < 100000; i ++ ) {
a[ i ] = new THREE.Vector3( i * 0.01, i * 2, i * -1.3 );
}
var suite = new Benchmark.Suite;
suite.add('NoCallTest', function() {
var result = 0;
for ( var i = 0; i < 100000; i ++ ) {
var v = a[i];
result += Math.sqrt( v.x * v.x + v.y * v.y + v.z * v.z );
}
});
suite.add('InlineCallTest', function() {
var result = 0;
for ( var i = 0; i < 100000; i ++ ) {
result += a[ i ].length2();
}
});
suite.add('FunctionCallTest', function() {
var result = 0;
for ( var i = 0; i < 100000; i ++ ) {
result += a[ i ].length();
}
});
suite.on('cycle', function(event, bench) {
console.log(String(event.target));
});
suite.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').pluck('name'));
console.log( "Done" );
});
suite.run(true);