node.js「for文」と「配列を利用したforeach」のパフォーマンスを計測する

node.js「for文」と「配列を利用したforeach」のパフォーマンスを計測する

node.jsで、「for文」と「配列を利用したforeach」のパフォーマンスを計測するサンプルコードを記述してます。nodeのバージョンは14.15.1を使用してます。

環境

  • OS windows10 pro 64bit
  • node V14.15.1

パフォーマンス計測

benchmarkを使用して、「for文」と「配列を利用したforeach」を使用して、繰り返しを行うコードを実行して、パフォーマンスを計測するサンプルコードとなります。

benchmarkインストール

npm i benchmark

サンプルコード

const Benchmark = require('benchmark');

const suite = new Benchmark.Suite;

// add tests
suite
    .add('for', function() {
        for (let i = 0; i < 2; i++) { i * 2 }
    })
    .add('forEach', function() {
        [...Array(2)].forEach((x, i) => i * 2)
    })
    // add listeners
    .on('cycle', function(event) {
        console.log(String(event.target));
    })
    .on('complete', function() {
        console.log('パフォーマンスがいいのは ' + this.filter('fastest').map('name') + 'となります');
    })
    // run async
    .run({ 'async': true });

実行結果

for x 171,103,407 回/秒 ±0.24% (91 runs sampled)
forEach x 27,002,148 回/秒 ±0.10% (96 runs sampled)
パフォーマンスがいいのは forとなります

1秒間に実行できる回数をみると、断然forの方がいい結果になりました。