author | Oleksandr Gavenko <gavenkoa@gmail.com> |
Wed, 10 Sep 2014 18:05:26 +0300 | |
changeset 38 | d476efde7242 |
parent 5 | f1dd66c68f4e |
child 57 | 94e1b2d0bd31 |
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 |
//////////////////////////////////////////////////////////////// |
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 |