- const workerDeleted = this.workersTaskRunTime.delete(workerKey)
- for (const [key, value] of this.workersTaskRunTime) {
- if (key > workerKey) {
- this.workersTaskRunTime.set(key - 1, value)
- }
- }
- return workerDeleted
- }
-
- private initWorkersTaskRunTime (): void {
- for (const [index] of this.pool.workers.entries()) {
- this.initWorkerTaskRunTime(index)
- }
- }
-
- private initWorkerTaskRunTime (workerKey: number): void {
- this.setWorkerTaskRunTime(workerKey, this.defaultWorkerWeight, 0)
- }
-
- private setWorkerTaskRunTime (
- workerKey: number,
- weight: number,
- runTime: number
- ): void {
- this.workersTaskRunTime.set(workerKey, {
- weight,
- runTime
- })
- }
-
- private getWorkerVirtualTaskRunTime (workerKey: number): number {
- return this.pool.workers[workerKey].tasksUsage.avgRunTime
- }
-
- private computeWorkerWeight (): number {
- let cpusCycleTimeWeight = 0
- for (const cpu of cpus()) {
- // CPU estimated cycle time
- const numberOfDigits = cpu.speed.toString().length - 1
- const cpuCycleTime = 1 / (cpu.speed / Math.pow(10, numberOfDigits))
- cpusCycleTimeWeight += cpuCycleTime * Math.pow(10, numberOfDigits)
- }
- return Math.round(cpusCycleTimeWeight / cpus().length)