author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Fri, 26 Sep 2014 00:57:00 +0300 | |
changeset 145 | bf3d47ecd0dd |
parent 92 | 1959a0505639 |
permissions | -rw-r--r-- |
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 |
//////////////////////////////////////////////////////////////// |
57 | 4 |
/** @fileOverview Performance testing toolkit. */ |
5
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 |
/* Invoce 'fn' function 'n' times with 'this' set to 'ctx'. |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
8 |
* Use 'ctx' to initialise test and to pass state between calls. */ |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
9 |
function perf(msg, fn, n, ctx) { |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
10 |
if (typeof n !== "number" || n < 1) |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
11 |
n = 1; |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
12 |
var tsFrom = new Date().getTime(); |
92
1959a0505639
Fix: ReferenceError: assignment to undeclared variable i
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
57
diff
changeset
|
13 |
for (var i = 0; i < n; i++) |
5
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
14 |
fn.call(ctx); |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
15 |
var tsTo = new Date().getTime(); |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
16 |
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
|
17 |
} |
f1dd66c68f4e
Performance testing toolkit.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff
changeset
|
18 |