Script Preparation code:
x
 
var map = {};
function generateSequence(prefix, numItems) { 
  var buffer = [];
  var prefixInstance = prefix || "";
  for (var i = 0; i < numItems; i++) {
    buffer.push(prefix + i);
  }
  return buffer;
}
var startTime;
function startTimer() {
  startTime = new Date().getTime()
}
function stopTimer() {
  var endTime = new Date().getTime();
  console.log("Took " + (endTime - startTime) +  " ms");
}
function generateMap() {
  console.log("Generating");
  for (var i = 0; i < 50000; i++) {
    map["a-" + i] = { 
      a: generateSequence("aaaaaaaaa", 10)
    }
  }
}
Tests:
  • The slow version

     
    generateMap();
    console.log("Test #1");
    startTimer();
    for (key in map) {
      if (map.hasOwnProperty(key)) { 
         delete map[key];
      }
    }
    stopTimer();
  • Faster version using Object.keys().

     
    generateMap();
    console.log("Test #2");
    startTimer();
    var keys = Object.keys(map);
    for (var i = 0, ii = keys.length; i < ii; i++) {
       delete map[keys[i]];
    }
    stopTimer();
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    The slow version
    Faster version using Object.keys().

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36
Chrome 69 on Windows
View result in a separate tab
Test name Executions per second
The slow version 7.3 Ops/sec
Faster version using Object.keys(). 9.9 Ops/sec