2

Not a duplicate of How to measure time taken by a function to execute. Please actually read my question before marking it as a duplicate of something else. Regardless, it's been answered.


I have code like

for (var i = 0 ; i < 10000 ; i++) {

    doSomething();

    doSomethingElse();

}

And I want to know how much time each function inside the loop is taking overall. How do I measure that?

Cœur
  • 37,241
  • 25
  • 195
  • 267
Isaac King
  • 283
  • 3
  • 13

2 Answers2

1
var t1;
var t2;
var f1Time =0;
var f2Time =0;
for (var i = 0 ; i < 10000 ; i++) {
    t1 = performance.now();
    doSomething();
    t2  = performance.now();
    f1Time+= (t2 - t1);

    t1 = performance.now();
    doSomethingElse();
    t2  = performance.now();
    f1Time+=(t2 - t1);

}
Vineesh
  • 3,762
  • 20
  • 37
0

Create a test object and register the individual time differences:

function doSomething() {
  t = Date.now();
  while (Date.now() < t + 13) {}
}

function doSomethingElse() {
  t = Date.now();
  while (Date.now() < t + 27) {}
}
var tests = {
  "doSomething": [],
  "doSomethingElse": []
};
for (var i_1 = 0; i_1 < 10; i_1++) {
  var t = Date.now();
  doSomething();
  tests.doSomething.push(Date.now() - t);
  t = Date.now();
  doSomethingElse();
  tests.doSomethingElse.push(Date.now() - t);
}
for (var key in tests) {
  if (tests.hasOwnProperty(key)) {
    tests[key] = tests[key]
      .reduce(function(sum, value) {
        return sum + value;
      }, 0);
  }
}
console.log(tests);
Emil S. Jørgensen
  • 6,216
  • 1
  • 15
  • 28