2
0
Эх сурвалжийг харах

Added custom perf code.
For those that don't trust jsperf :P

Mr.doob 12 жил өмнө
parent
commit
3c06f0c52d
1 өөрчлөгдсөн 128 нэмэгдсэн , 0 устгасан
  1. 128 0
      test/perf.html

+ 128 - 0
test/perf.html

@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang="en">
+	<body>
+
+		<script src="../build/three.min.js"></script>
+		<script src="../examples/js/math/TypeArrayVector3.js"></script>
+
+		<script>
+
+			var Benchmark = function ( title, test ) {
+
+				var titleDom = document.createElement( 'div' );
+				titleDom.style.fontWeight = 'bold';
+				titleDom.textContent = title;
+				document.body.appendChild( titleDom );
+
+				var msDom = document.createElement( 'div' );
+				document.body.appendChild( msDom );
+
+				this.run = function () {
+
+					var start = performance.now();
+
+					test();
+
+					msDom.textContent = performance.now() - start;
+
+				}
+
+			};
+
+
+			var vector11 = new THREE.Vector3( 1.2, 2.3, 3.4 );
+			var vector12 = new THREE.Vector3( 1.2, 2.3, 3.4 );
+			var vector13 = new THREE.Vector3( 1.2, 2.3, 3.4 );
+
+			var vector21 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
+			var vector22 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
+			var vector23 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
+
+			var benchmarks = [
+
+				new Benchmark( 'new Vector3()', function () {
+
+					for ( var i = 0; i < 10000; i ++ ) {
+
+						var vector = new THREE.Vector3( 1, 1, 1 );
+
+					}
+
+				} ),
+
+				new Benchmark( 'new TypeArrayVector3()', function () {
+
+					for ( var i = 0; i < 10000; i ++ ) {
+
+						var vector = new THREE.TypeArrayVector3( 1, 1, 1 );
+
+					}
+
+				} ),
+
+				new Benchmark( 'Vector3 add()', function () {
+
+					for ( var i = 0; i < 10000000; i ++ ) {
+
+						vector11.add( vector12 );
+
+					}
+
+				} ),
+
+				new Benchmark( 'TypeArrayVector3 add()', function () {
+
+					for ( var i = 0; i < 10000000; i ++ ) {
+
+						vector21.add( vector22 );
+
+					}
+
+				} ),
+
+				new Benchmark( 'Vector3 addVectors()', function () {
+
+					for ( var i = 0; i < 10000000; i ++ ) {
+
+						vector11.addVectors( vector12, vector13 );
+
+					}
+
+				} ),
+
+				new Benchmark( 'TypeArrayVector3 addVectors()', function () {
+
+					for ( var i = 0; i < 10000000; i ++ ) {
+
+						vector21.addVectors( vector22, vector23 );
+
+					}
+
+				} )
+
+			];
+
+			function update () {
+
+				vector11 = new THREE.Vector3( Math.random(), Math.random(), Math.random() );
+				vector12 = new THREE.Vector3( Math.random(), Math.random(), Math.random() );
+
+				vector21 = new THREE.TypeArrayVector3().set( vector11.x, vector11.y, vector11.z );
+				vector22 = new THREE.TypeArrayVector3().set( vector12.x, vector12.y, vector12.z );
+
+				for ( var i = 0, l = benchmarks.length; i < l; i ++ ) {
+
+					benchmarks[ i ].run();
+
+				}
+
+				setTimeout( update, 2000 );
+
+			}
+
+			update();
+
+		</script>
+
+	</body>
+</html>