Float32Array.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. })();