source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/test/benchmark/core/Vector3Storage.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.3 KB
Line 
1THREE = {};
2
3THREE.Vector3 = function ( x, y, z ) {
4
5 this.x = x || 0;
6 this.y = y || 0;
7 this.z = z || 0;
8
9};
10
11THREE.Vector3.prototype = {
12
13 constructor: THREE.Vector3,
14
15 length: function () {
16
17 return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );
18
19 }
20
21};
22
23THREE.Vector3X = function ( x, y, z ) {
24
25 var elements = this.elements = new Float32Array( 3 );
26 elements[0] = x || 0;
27 elements[1] = y || 1;
28 elements[2] = z || 2;
29
30};
31
32THREE.Vector3X.prototype = {
33
34 constructor: THREE.Vector3X,
35
36 length: function () {
37
38 return Math.sqrt( this.elements[0] * this.elements[0] + this.elements[1] * this.elements[1] + this.elements[2] * this.elements[2] );
39
40 }
41
42};
43
44
45THREE.Vector3Y = function ( x, y, z ) {
46
47 this.elements = [ x || 0, y || 1, z || 2 ];
48
49};
50
51THREE.Vector3Y.prototype = {
52
53 constructor: THREE.Vector3Y,
54
55 length: function () {
56
57 return Math.sqrt( this.elements[0] * this.elements[0] + this.elements[1] * this.elements[1] + this.elements[2] * this.elements[2] );
58
59 }
60
61};
62
63
64var suite = new Benchmark.Suite;
65
66suite.add('Vector3-Set', function() {
67
68 var array = [];
69 for ( var i = 0; i < 100000; i ++ ) {
70 var v = new THREE.Vector3( i, i, i );
71 array.push( v );
72 }
73
74 var result = 0;
75 for ( var i = 0; i < 100000; i ++ ) {
76 var v = array[i];
77 result += v.length();
78 }
79});
80
81suite.add('Vector3-Float32Array', function() {
82
83 var array = [];
84 for ( var i = 0; i < 100000; i ++ ) {
85 var v = new THREE.Vector3X( i, i, i );
86 array.push( v );
87 }
88
89 var result = 0;
90 for ( var i = 0; i < 100000; i ++ ) {
91 var v = array[i];
92 result += v.length();
93 }
94});
95
96suite.add('Vector3-Array', function() {
97
98 var array = [];
99 for ( var i = 0; i < 100000; i ++ ) {
100 var v = new THREE.Vector3Y( i, i, i );
101 array.push( v );
102 }
103
104 var result = 0;
105 for ( var i = 0; i < 100000; i ++ ) {
106 var v = array[i];
107 result += v.length();
108 }
109});
110
111suite.on('cycle', function(event, bench) {
112 console.log(String(event.target));
113});
114
115suite.on('complete', function() {
116 console.log('Fastest is ' + this.filter('fastest').pluck('name'));
117 console.log( "Done" );
118});
119
120suite.run(true);
Note: See TracBrowser for help on using the repository browser.