Performance testing toolkit.
authorOleksandr Gavenko <gavenkoa@gmail.com>
Sat, 06 Sep 2014 19:51:14 +0300
changeset 5 f1dd66c68f4e
parent 4 732aef931a9e
child 6 eb31d2025a1d
Performance testing toolkit.
perf.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/perf.js	Sat Sep 06 19:51:14 2014 +0300
@@ -0,0 +1,19 @@
+"use strict";
+
+////////////////////////////////////////////////////////////////
+// Performance testing toolkit.
+////////////////////////////////////////////////////////////////
+
+
+/* Invoce 'fn' function 'n' times with 'this' set to 'ctx'.
+ * Use 'ctx' to initialise test and to pass state between calls. */
+function perf(msg, fn, n, ctx) {
+    if (typeof n !== "number" || n < 1)
+        n = 1;
+    var tsFrom = new Date().getTime();
+    for (i = 0; i < n; i++)
+        fn.call(ctx);
+    var tsTo = new Date().getTime();
+    console.log(msg + ": %f ms, %d u/s", tsTo-tsFrom, i/(tsTo - tsFrom)*1000);
+}
+