]> source.dussan.org Git - jquery.git/commitdiff
speed: committing a failing experiment of concat vs slice
authorAriel Flesler <aflesler@gmail.com>
Fri, 24 Jul 2009 00:57:27 +0000 (00:57 +0000)
committerAriel Flesler <aflesler@gmail.com>
Fri, 24 Jul 2009 00:57:27 +0000 (00:57 +0000)
speed/slice.vs.concat.html [new file with mode: 0644]

diff --git a/speed/slice.vs.concat.html b/speed/slice.vs.concat.html
new file mode 100644 (file)
index 0000000..c061e07
--- /dev/null
@@ -0,0 +1,46 @@
+<script type="text/javascript">
+(function(){
+       // Conclusion: slice is a little faster except on Chrome
+       // clone() is slower on FF & IE but takes 50% on Safari & Chrome
+
+       var SIZE = 1e4,
+               LOOPS = 500;
+       
+       var arr = new Array(SIZE);
+       for ( var i=arr.length-1; i >= 0; --i )
+               arr[i] = 0;
+
+       var t = new Date;
+       for ( i=0; i < LOOPS; i++ )
+               arr.slice(0);
+       var tslice = new Date - t;
+       
+       t = new Date;
+       for ( i=0; i < LOOPS; i++ )
+               arr.concat();
+       var tconcat = new Date - t;
+       
+       // clone() is just to see how fast built-ins are
+       t = new Date;
+       for ( i=0; i < LOOPS; i++ )
+               clone(arr);
+       var tclone = new Date - t;
+       
+       alert([
+               'slice:'+tslice,
+               'concat:'+tconcat,
+               'clone:'+tclone
+       ].join('\n'));
+       
+       
+       function clone(arr){
+               var i = arr.length,
+                       copy = new Array(i);
+                       
+               while (i--)
+                       copy[i] = arr[i];
+                       
+               return copy;
+       }
+})();
+</script>
\ No newline at end of file