- private computeWorkerLastVirtualTaskTimestamp (worker: Worker): void {
- const workerVirtualTaskStartTimestamp = Math.max(
- Date.now(),
- this.workerLastVirtualTaskTimestamp.get(worker)?.end ?? -Infinity
+ private computeWorkerVirtualTaskEndTimestamp (workerNodeKey: number): void {
+ this.workersVirtualTaskEndTimestamp[workerNodeKey] =
+ this.getWorkerVirtualTaskEndTimestamp(
+ workerNodeKey,
+ this.getWorkerVirtualTaskStartTimestamp(workerNodeKey)
+ )
+ }
+
+ private getWorkerVirtualTaskEndTimestamp (
+ workerNodeKey: number,
+ workerVirtualTaskStartTimestamp: number
+ ): number {
+ const workerTaskRunTime =
+ this.opts.measurement === Measurements.elu
+ ? this.getWorkerTaskElu(workerNodeKey)
+ : this.getWorkerTaskRunTime(workerNodeKey)
+ return workerVirtualTaskStartTimestamp + workerTaskRunTime
+ }
+
+ private getWorkerVirtualTaskStartTimestamp (workerNodeKey: number): number {
+ return Math.max(
+ performance.now(),
+ this.workersVirtualTaskEndTimestamp[workerNodeKey] ?? -Infinity