Float32Array.js 2.0 KB

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