MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 59 lines 1.4 kB view raw
1/* 2 * Array creation micro-bench 3 */ 4 5function get_clock() { 6 if (typeof performance !== 'undefined' && performance.now) return performance.now(); 7 return Date.now(); 8} 9 10function run_case(name, fn, iters) { 11 var i; 12 var t0 = get_clock(); 13 for (i = 0; i < iters; i++) fn(); 14 var dt = get_clock() - t0; 15 console.log(name + ': ' + dt.toFixed(2) + ' ms'); 16} 17 18function create_assign() { 19 var tab = []; 20 for (var i = 0; i < 1000; i++) tab[i] = i; 21} 22 23function create_push() { 24 var tab = []; 25 for (var i = 0; i < 1000; i++) tab.push(i); 26} 27 28function create_prealloc_assign() { 29 var tab = []; 30 tab.length = 1000; 31 for (var i = 0; i < 1000; i++) tab[i] = i; 32} 33 34function create_prealloc_push() { 35 var tab = []; 36 tab.length = 1000; 37 for (var i = 0; i < 1000; i++) tab.push(i); 38} 39 40function main() { 41 var iters = 200; 42 run_case('create_assign', create_assign, iters); 43 run_case('create_push', create_push, iters); 44 run_case('create_prealloc_assign', create_prealloc_assign, iters); 45 run_case('create_prealloc_push', create_prealloc_push, iters); 46 47 var arr = []; 48 var t0 = get_clock(); 49 for (var i = 0; i < 20000; i++) { 50 arr.push(i); 51 } 52 var dt = get_clock() - t0; 53 console.log('push_20k: ' + dt.toFixed(2) + ' ms'); 54 console.log('done, arr length: ' + arr.length); 55 console.log('first element: ' + arr[0]); 56 console.log('last element: ' + arr[19999]); 57} 58 59main();