diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-12-12 22:49:04 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-12-12 22:49:04 +0100 |
commit | 5a8d880ebd53d6436e78c9f242d20bfa3f50b8b8 (patch) | |
tree | b46676f112e5a7e6c5b42854a5855a206d59b5c1 | |
parent | ca2a46a8575d66d529accb1ce3aaf97be8f37e2f (diff) |
measure time for the operation only while not in queue
-rw-r--r-- | src/crypto/cryptoApi.ts | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/crypto/cryptoApi.ts b/src/crypto/cryptoApi.ts index d0ba6ada8..9a21d13a9 100644 --- a/src/crypto/cryptoApi.ts +++ b/src/crypto/cryptoApi.ts @@ -73,6 +73,11 @@ interface WorkItem { * Serial id to identify a matching response. */ rpcId: number; + + /** + * Time when the work was submitted to a (non-busy) worker thread. + */ + startTime: number; } @@ -117,6 +122,7 @@ export class CryptoApi { operation: work.operation, }; this.resetWorkerTimeout(ws); + work.startTime = timer.performanceNow(); ws.w!.postMessage(msg); } @@ -187,6 +193,7 @@ export class CryptoApi { console.error(`RPC with id ${id} has no registry entry`); return; } + console.log(`rpc ${currentWorkItem.operation} took ${timer.performanceNow() - currentWorkItem.startTime}ms`); currentWorkItem.resolve(msg.data.result); } @@ -216,11 +223,10 @@ export class CryptoApi { private doRpc<T>(operation: string, priority: number, ...args: any[]): Promise<T> { - const start = timer.performanceNow(); const p: Promise<T> = new Promise<T>((resolve, reject) => { const rpcId = this.nextRpcId++; - const workItem: WorkItem = {operation, args, resolve, reject, rpcId}; + const workItem: WorkItem = {operation, args, resolve, reject, rpcId, startTime: 0}; if (this.numBusy === this.workers.length) { const q = this.workQueues[priority]; @@ -244,7 +250,6 @@ export class CryptoApi { }); return p.then((r: T) => { - console.log(`rpc ${operation} took ${timer.performanceNow() - start}ms`); return r; }); } |