source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/test/benchmark/core/Float32Array.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 2.5 KB
Line 
1
2var input = new Float32Array( 10000 * 3 );
3var output = new Float32Array( 10000 * 3 );
4
5for( var j = 0, jl = input.length; j < jl; j ++ ) {
6 input[j] = j;
7}
8
9var inputVectors = [];
10var outputVectors = [];
11
12for( var j = 0, jl = input.length/3; j < jl; j ++ ) {
13 inputVectors.push( new THREE.Vector3( j*3, j*3+1, j*3+2 ) );
14 outputVectors.push( new THREE.Vector3() );
15}
16
17var suite = new Benchmark.Suite;
18
19suite.add('Float32Array-Float32Array', function() {
20 var value3 = new Float32Array( 3 );
21 for (var i = 0, il = input.length / 3; i < il; i += 3) {
22 value3[0] = input[i + 0];
23 value3[1] = input[i + 1];
24 value3[2] = input[i + 2];
25 value3[0] *= 1.01;
26 value3[1] *= 1.03;
27 value3[2] *= 0.98;
28 output[i + 0] = value3[0];
29 output[i + 1] = value3[1];
30 output[i + 2] = value3[2];
31 }
32});
33
34suite.add('Float32Array-Array', function() {
35 var value2 = [0,0,0];
36 for (var i = 0, il = input.length / 3; i < il; i += 3) {
37 value2[0] = input[i + 0];
38 value2[1] = input[i + 1];
39 value2[2] = input[i + 2];
40 value2[0] *= 1.01;
41 value2[1] *= 1.03;
42 value2[2] *= 0.98;
43 output[i + 0] = value2[0];
44 output[i + 1] = value2[1];
45 output[i + 2] = value2[2];
46 }
47});
48
49suite.add('Float32Array-Literal', function() {
50 var x, y, z;
51 for (var i = 0, il = input.length / 3; i < il; i += 3) {
52 x = input[i + 0];
53 y = input[i + 1];
54 z = input[i + 2];
55 x *= 1.01;
56 y *= 1.03;
57 z *= 0.98;
58 output[i + 0] = x;
59 output[i + 1] = y;
60 output[i + 2] = z;
61 }
62});
63
64suite.add('Float32Array-Vector3', function() {
65 var value = new THREE.Vector3();
66 for (var i = 0, il = input.length / 3; i < il; i += 3) {
67 value.x = input[i + 0];
68 value.y = input[i + 1];
69 value.z = input[i + 2];
70 value.x *= 1.01;
71 value.y *= 1.03;
72 value.z *= 0.98;
73 output[i + 0] = value.x;
74 output[i + 1] = value.y;
75 output[i + 2] = value.z;
76 }
77});
78
79suite.add('Vector3Array-Direct', function() {
80 for (var i = 0, il = inputVectors.length; i < il; i ++ ) {
81 outputVectors[i].copy( inputVectors[i] );
82 outputVectors[i].x *= 1.01;
83 outputVectors[i].y *= 1.03;
84 outputVectors[i].z *= 0.98;
85 }
86});
87
88suite.add('Vector3Array-Vector3', function() {
89 var value = new THREE.Vector3();
90 for (var i = 0, il = inputVectors.length; i < il; i ++ ) {
91 value.copy( inputVectors[i] );
92 value.x *= 1.01;
93 value.y *= 1.03;
94 value.z *= 0.98;
95 outputVectors[i].copy( value );
96 }
97});
98
99suite.on('cycle', function(event, bench) {
100 console.log(String(event.target));
101});
102
103suite.on('complete', function() {
104 console.log('Fastest is ' + this.filter('fastest').pluck('name'));
105 console.log( "Done" );
106});
107
108suite.run(true);
Note: See TracBrowser for help on using the repository browser.