Node.jsでパフォーマンス計測するには、以下のパッケージがあります。
これにより、自分でDate.Nowなどを使って計測する必要はありません。
使い方もusage exampleのコードを見れば、計測したい処理をaddしていけばいいというのはわかると思います。
では、計測
ソースレビューで
for (var i = 0; i < 100000; i++) { }
というコードに対して
var i ; for (i = 0; i < 100000; i++) { }
の方が速くない?という指摘が。
理屈としては変数をループごとに再定義するから前者の方が時間がかかるというのですが、さすがにそれは今のコンパイルが最適化してくれるのでは?と。
ただ、ここは推測するな、計測せよ、です。
指摘した人が自分で計測してましたが、これを私も計測してみます。
const Benchmark = require('benchmark'); const suite = new Benchmark.Suite; const loop = 1000000; // add tests suite .add('out declare', function () { let i = 0; for (; i < loop; i++) { } }) .add('inner declare', function () { for (let i = 0; i < loop; i++) { } }) // add listeners .on('cycle', function (event) { console.log(String(event.target)); }) .on('complete', function () { console.log('Fastest is ' + this.filter('fastest').map('name')); }) // run async .run({'async': true});
out declare x 1,745 ops/sec ±0.65% (93 runs sampled)
inner declare x 1,746 ops/sec ±0.56% (90 runs sampled)
Fastest is inner declare,out declare
結果としては大して変わらない、といったところですね。