@@ -23,6 +23,11 @@ const optimize = fn => %OptimizeFunctionOnNextCall(fn);
2323const rpad = ( s , char , count ) => ( s + char . repeat ( count - s . length ) ) ;
2424const lpad = ( s , char , count ) => ( char . repeat ( count - s . length ) + s ) ;
2525
26+ const relativePercent = ( best , time ) => {
27+ const relative = time * 100 / best ;
28+ const result = Math . round ( Math . round ( relative * 100 ) / 100 ) - 100 ;
29+ }
30+
2631console . log ( '\nname (heat) time opt after: define opt heat loop\n' ) ;
2732
2833benchmark . do = ( count , tests ) => {
@@ -42,20 +47,18 @@ benchmark.do = (count, tests) => {
4247 const diff = end [ 0 ] * 1e9 + end [ 1 ] ;
4348 const time = lpad ( diff . toString ( ) , '.' , 15 ) ;
4449 const name = rpad ( fn . name , '.' , 25 ) ;
50+ const iterations = result . length - PRE_COUNT ;
4551 console . log (
46- name + '(' + ( result . length - PRE_COUNT ) + ')' +
47- time + ' nanoseconds ' + optCount ( fn ) + ' ' +
48- optBefore + ' ' + optAfter + ' ' +
49- optAfterHeat + ' ' + optAfterLoop
52+ `${ name } (${ iterations } ) ${ time } nanoseconds ${ optCount ( fn ) } ` +
53+ `${ optBefore } ${ optAfter } ${ optAfterHeat } ${ optAfterLoop } `
5054 ) ;
5155 return { name, time : diff } ;
5256 } ) ;
5357 console . log ( ) ;
5458 const top = times . sort ( ( t1 , t2 ) => ( t1 . time - t2 . time ) ) ;
5559 const best = top [ 0 ] . time ;
56- const relative = ( time ) => ( time * 100 / best ) ;
5760 top . forEach ( ( test ) => {
58- test . percent = Math . round ( Math . round ( relative ( test . time ) * 100 ) / 100 ) - 100 ;
61+ test . percent = relativePercent ( best , test . time ) ;
5962 const time = lpad ( test . time . toString ( ) , '.' , 15 ) ;
6063 const percent = lpad ( (
6164 test . percent === 0 ? 'min' : '+' + test . percent + '%'
0 commit comments