perf.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <body>
  4. <script src="../build/three.min.js"></script>
  5. <script src="../examples/js/math/TypeArrayVector3.js"></script>
  6. <script>
  7. var Benchmark = function ( title, test ) {
  8. var titleDom = document.createElement( 'div' );
  9. titleDom.style.fontWeight = 'bold';
  10. titleDom.textContent = title;
  11. document.body.appendChild( titleDom );
  12. var msDom = document.createElement( 'div' );
  13. document.body.appendChild( msDom );
  14. this.run = function () {
  15. var start = performance.now();
  16. test();
  17. msDom.textContent = performance.now() - start;
  18. }
  19. };
  20. var vector11 = new THREE.Vector3( 1.2, 2.3, 3.4 );
  21. var vector12 = new THREE.Vector3( 1.2, 2.3, 3.4 );
  22. var vector13 = new THREE.Vector3( 1.2, 2.3, 3.4 );
  23. var vector21 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
  24. var vector22 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
  25. var vector23 = new THREE.TypeArrayVector3( 1.2, 2.3, 3.4 );
  26. var benchmarks = [
  27. new Benchmark( 'new Vector3()', function () {
  28. for ( var i = 0; i < 10000; i ++ ) {
  29. var vector = new THREE.Vector3( 1, 1, 1 );
  30. }
  31. } ),
  32. new Benchmark( 'new TypeArrayVector3()', function () {
  33. for ( var i = 0; i < 10000; i ++ ) {
  34. var vector = new THREE.TypeArrayVector3( 1, 1, 1 );
  35. }
  36. } ),
  37. new Benchmark( 'Vector3 add()', function () {
  38. for ( var i = 0; i < 10000000; i ++ ) {
  39. vector11.add( vector12 );
  40. }
  41. } ),
  42. new Benchmark( 'TypeArrayVector3 add()', function () {
  43. for ( var i = 0; i < 10000000; i ++ ) {
  44. vector21.add( vector22 );
  45. }
  46. } ),
  47. new Benchmark( 'Vector3 addVectors()', function () {
  48. for ( var i = 0; i < 10000000; i ++ ) {
  49. vector11.addVectors( vector12, vector13 );
  50. }
  51. } ),
  52. new Benchmark( 'TypeArrayVector3 addVectors()', function () {
  53. for ( var i = 0; i < 10000000; i ++ ) {
  54. vector21.addVectors( vector22, vector23 );
  55. }
  56. } )
  57. ];
  58. function update () {
  59. vector11 = new THREE.Vector3( Math.random(), Math.random(), Math.random() );
  60. vector12 = new THREE.Vector3( Math.random(), Math.random(), Math.random() );
  61. vector21 = new THREE.TypeArrayVector3().set( vector11.x, vector11.y, vector11.z );
  62. vector22 = new THREE.TypeArrayVector3().set( vector12.x, vector12.y, vector12.z );
  63. for ( var i = 0, l = benchmarks.length; i < l; i ++ ) {
  64. benchmarks[ i ].run();
  65. }
  66. setTimeout( update, 2000 );
  67. }
  68. update();
  69. </script>
  70. </body>
  71. </html>