首页 > 解决方案 > 如果密集使用 setImmediate 会不会有任何不良影响?

问题描述

我的问题是,使用密集的 setimmediate 会对性能产生负面影响吗?我已经制作了算法的简化示例代码。每次收到http请求时都会执行类似的代码。

const wrapper = (next, handler) => {
    const val = handler(next)
    console.log('exec', handler.name)
    if (val !== undefined) {
        console.log(val)
    }
}

const dispatch = (i, ...handlers) => {
    const handler = handlers[i]
    const next = () => {
        dispatch(++i, ...handlers)
    }

    wrapper(next, handler)
    // setImmediate(wrapper, next, handler)
}

const pass = (next) => {
    next()
}

const greet = () => {
    return 'hello'
}

dispatch(0, pass, greet)


/**
output whiout setImmediate:
exec greet
hello
exec pass

output whit setImmediate:
exec pass
exec greet
hello
*/

标签: javascriptnode.js

解决方案


它可能不会,但通过运行基准测试和负载测试来衡量影响将是确认的最佳方式,因为可能会有一些意想不到的影响。


推荐阅读