LoginSignup
0
1

More than 3 years have passed since last update.

jsのloop処理速度実験(GAS上)

Last updated at Posted at 2019-11-29

When I experimented what was the fastest in the JavaScript loop, "for" was the fastest!

function getArray() {
  var array = []
  for(var i=1; i<=1000000; i++) {
    array.push(i)
  }
  return array
}

function test() {
  var array = getArray()
  testtest(array, forTest)

  testtest(array, forEachTest)

  testtest(array, mapTest)

  testtest(array, for2Test)

  testtest(array, whileTest)
}

function testtest(array, callback) {
  var start = new Date()
  callback(array)
  var end = new Date()
  var span_sec = (end - start)/1000
  Logger.log("処理時間は " + span_sec + " 秒でした" );
}


function forTest(array) {
  var l = array.length
  for(var i=0; i<l; i++) {
  }
}

function forEachTest(array) {
  array.forEach(function(i, e) {
  })
}

function mapTest(array) {
  array.map(function(e, i) {
  })
}

function for2Test(array) {
  for(var i in array) {
  }
}

function whileTest(array) {
  var i = array.length
  while(i > 0 ) {
    i--
  }
}

result

[19-11-29 15:20:48:459 JST] forTestの処理時間は 1.197 秒でした
[19-11-29 15:20:49:823 JST] forEachTestの処理時間は 1.364 秒でした
[19-11-29 15:20:51:461 JST] mapTestの処理時間は 1.637 秒でした
[19-11-29 15:20:52:912 JST] for2Testの処理時間は 1.451 秒でした
[19-11-29 15:20:54:404 JST] whileTestの処理時間は 1.491 秒でした
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1