Float32Array.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ( function () {
  2. var input = new Float32Array( 10000 * 3 );
  3. var output = new Float32Array( 10000 * 3 );
  4. for ( var j = 0, jl = input.length; j < jl; j ++ ) {
  5. input[ j ] = j;
  6. }
  7. var s = Bench.newSuite( 'Float 32 Arrays' );
  8. s.add( 'Float32Array-Float32Array', function () {
  9. var value3 = new Float32Array( 3 );
  10. for ( var i = 0, il = input.length / 3; i < il; i += 3 ) {
  11. value3[ 0 ] = input[ i + 0 ];
  12. value3[ 1 ] = input[ i + 1 ];
  13. value3[ 2 ] = input[ i + 2 ];
  14. value3[ 0 ] *= 1.01;
  15. value3[ 1 ] *= 1.03;
  16. value3[ 2 ] *= 0.98;
  17. output[ i + 0 ] = value3[ 0 ];
  18. output[ i + 1 ] = value3[ 1 ];
  19. output[ i + 2 ] = value3[ 2 ];
  20. }
  21. } );
  22. s.add( 'Float32Array-Array', function () {
  23. var value2 = [ 0, 0, 0 ];
  24. for ( var i = 0, il = input.length / 3; i < il; i += 3 ) {
  25. value2[ 0 ] = input[ i + 0 ];
  26. value2[ 1 ] = input[ i + 1 ];
  27. value2[ 2 ] = input[ i + 2 ];
  28. value2[ 0 ] *= 1.01;
  29. value2[ 1 ] *= 1.03;
  30. value2[ 2 ] *= 0.98;
  31. output[ i + 0 ] = value2[ 0 ];
  32. output[ i + 1 ] = value2[ 1 ];
  33. output[ i + 2 ] = value2[ 2 ];
  34. }
  35. } );
  36. s.add( 'Float32Array-Literal', function () {
  37. var x,
  38. y,
  39. z;
  40. for ( var i = 0, il = input.length / 3; i < il; i += 3 ) {
  41. x = input[ i + 0 ];
  42. y = input[ i + 1 ];
  43. z = input[ i + 2 ];
  44. x *= 1.01;
  45. y *= 1.03;
  46. z *= 0.98;
  47. output[ i + 0 ] = x;
  48. output[ i + 1 ] = y;
  49. output[ i + 2 ] = z;
  50. }
  51. } );
  52. s.add( 'Float32Array-Vector3', function () {
  53. var value = new THREE.Vector3();
  54. for ( var i = 0, il = input.length / 3; i < il; i += 3 ) {
  55. value.x = input[ i + 0 ];
  56. value.y = input[ i + 1 ];
  57. value.z = input[ i + 2 ];
  58. value.x *= 1.01;
  59. value.y *= 1.03;
  60. value.z *= 0.98;
  61. output[ i + 0 ] = value.x;
  62. output[ i + 1 ] = value.y;
  63. output[ i + 2 ] = value.z;
  64. }
  65. } );
  66. } )();