+
+ private beginTaskPerformance (message: MessageValue<Data>): TaskPerformance {
+ const timestamp = performance.now()
+ return {
+ timestamp,
+ ...(this.statistics.waitTime && {
+ waitTime: timestamp - (message.timestamp ?? timestamp)
+ }),
+ ...(this.statistics.elu && { elu: performance.eventLoopUtilization() })
+ }
+ }
+
+ private endTaskPerformance (
+ taskPerformance: TaskPerformance
+ ): TaskPerformance {
+ return {
+ ...taskPerformance,
+ ...(this.statistics.runTime && {
+ runTime: performance.now() - taskPerformance.timestamp
+ }),
+ ...(this.statistics.elu && {
+ elu: performance.eventLoopUtilization(taskPerformance.elu)
+ })
+ }
+ }