summaryrefslogtreecommitdiff
path: root/js/performance.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/performance.ts')
-rw-r--r--js/performance.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/performance.ts b/js/performance.ts
new file mode 100644
index 000000000..73378b15c
--- /dev/null
+++ b/js/performance.ts
@@ -0,0 +1,29 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import * as msg from "gen/msg_generated";
+import { sendSync } from "./dispatch";
+import * as flatbuffers from "./flatbuffers";
+import { assert } from "./util";
+
+export class Performance {
+ timeOrigin = 0;
+
+ constructor() {
+ this.timeOrigin = new Date().getTime();
+ }
+
+ /** Returns a current time from Deno's start
+ *
+ * const t = performance.now();
+ * console.log(`${t} ms since start!`);
+ */
+ now(): number {
+ const builder = flatbuffers.createBuilder();
+ msg.Now.startNow(builder);
+ const inner = msg.Now.endNow(builder);
+ const baseRes = sendSync(builder, msg.Any.Now, inner)!;
+ assert(msg.Any.NowRes === baseRes.innerType());
+ const res = new msg.NowRes();
+ assert(baseRes.inner(res) != null);
+ return res.time().toFloat64() - this.timeOrigin;
+ }
+}