Почему вместе с worker-ом и без него, скорость выполнения задачи одинаковая?

app.js

const func = (array) =>{
    return script(array)
}

const main = () =>{
    performance.mark('start')
    console.log(func([10,4,2,1,5]))
    performance.mark('end')
    performance.measure('main', 'start', 'end')
    console.log(`Скорость работы составила: ${performance.getEntriesByName('main').pop().duration.toFixed()}ms`)
}

function script(array){
    let result = []
    array.map(el =>{
        result.push(el % 2 == 0)
    })
    for(i = 1; i < 1099999999; i++){
        i**4
    }
    return result
}

main() 

Консоль

[ true, true, true, false, false ]

Скорость работы составила: 2540ms


worker-app.js

const { Worker } = require('worker_threads')

const workerFunc = (array) =>{
    performance.mark('start')
    return new Promise((resolve, reject) =>{
        const worker = new Worker('./worker.js', {
            workerData: array
        })

        worker.on('message', msg =>{
            performance.mark('end')
            performance.measure('main', 'start', 'end')
            console.log(`Скорость работы составила: ${performance.getEntriesByName('main').pop().duration.toFixed()}ms`)
            resolve(msg)
        })

        worker.on('error', err =>{
            reject(err)
        })

    }).then(data =>{
        console.log(data)
    }).catch(err =>{
        console.error(err)
    })
}


const main = async () =>{
    await workerFunc([10,4,2,1,5])
}



main()

Консоль

[ true, true, true, false, false ]

Скорость работы составила: 2613ms


worker.js

const { parentPort, workerData } = require('worker_threads')
const { script } = require('./script')

parentPort.postMessage(script(workerData))

script.js

function script(array){
    let result = []
    array.map(el =>{
        result.push(el % 2 == 0)
    })

    // нагрузка на процессор
    for(i = 1; i < 1099999999; i++){
        i**4
    }
    return result
}

module.exports = { script }


Ответы (0 шт):