perf.js
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 08 Sep 2014 01:47:36 +0300
changeset 18 42d62e5123b2
parent 5 f1dd66c68f4e
child 57 94e1b2d0bd31
permissions -rw-r--r--
Choose move that lead to maximum next score among all possible when next moves lead to same score.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
"use strict";
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
////////////////////////////////////////////////////////////////
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
// Performance testing toolkit.
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
////////////////////////////////////////////////////////////////
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
/* Invoce 'fn' function 'n' times with 'this' set to 'ctx'.
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
 * Use 'ctx' to initialise test and to pass state between calls. */
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
function perf(msg, fn, n, ctx) {
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
    if (typeof n !== "number" || n < 1)
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
        n = 1;
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
    var tsFrom = new Date().getTime();
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
    for (i = 0; i < n; i++)
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
        fn.call(ctx);
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
    var tsTo = new Date().getTime();
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
    console.log(msg + ": %f ms, %d u/s", tsTo-tsFrom, i/(tsTo - tsFrom)*1000);
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
}
f1dd66c68f4e Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19