currentTimeMillis
['new Date().getTime()', '+new Date', 'Date.now()'] .map(function(x)[x, Array(1e5).join(x +';'), dis(Function(x))]) .map(function([x, c]){ print('\n'+ x +'\n=>', -new Date + eval(c)) })
> js -v 2>&1| goruby -e "s gt" JavaScript-C 1.8.0 pre-release 1 2007-10-03 > js millis.js flags: LAMBDA INTERPRETED main: 00000: callname "Date" 00003: new 0 00006: callprop "getTime" 00009: call 0 00012: pop 00013: stop Source notes: 0: 3 [ 3] pcbase offset 3 2: 6 [ 3] pcbase offset 6 4: 9 [ 3] pcbase offset 9 flags: LAMBDA INTERPRETED main: 00000: callname "Date" 00003: new 0 00006: pos 00007: pop 00008: stop Source notes: 0: 3 [ 3] pcbase offset 3 flags: LAMBDA INTERPRETED main: 00000: name "Date" 00003: callprop "now" 00006: call 0 00009: pop 00010: stop Source notes: 0: 3 [ 3] pcbase offset 3 2: 6 [ 3] pcbase offset 6 new Date().getTime() => 1132 +new Date => 1040 Date.now() => 756
new Date().getTime() | センス無し |
+new Date | ごるふ |
Date.now() | 効率 |
+
ごるふ効果*1を考慮し忘れた。長さを揃えて再計測。
['new Date().getTime()', '+new Date ', 'Date.now() '] .map(function(x)[x, Array(1e5).join(x +';')]) .forEach(function([x, c]){ print(x, '=>', -new Date + eval(c)) })
> js millis_padded.js new Date().getTime() => 1101 +new Date => 1099 Date.now() => 797
上二つはほぼ同じか。
*1:つまり eval のパースコスト