首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用常量进行Node.js优化

使用常量进行Node.js优化
EN

Stack Overflow用户
提问于 2020-06-20 20:36:47
回答 2查看 84关注 0票数 3

请比较:

代码语言:javascript
复制
// Version 1
    const oneHour = 60 * 60
    function checkTime(timePast) {
        if (timePast<7 * 24 * oneHour) {
            // Do something
        }
    }

// Version 2
    const oneHour = 60 * 60
    const oneWeek = 7 * 24 * oneHour
    function checkTime(timePast) {
        if (timePast<oneWeek) {
            // Do something
        }
    }

在对checkTime()的数百万次调用中,版本2是否比版本1更快,或者Node.js是否足够智能,以便在版本1中只进行一次额外的计算?

EN

回答 2

Stack Overflow用户

发布于 2020-06-20 22:43:17

您可以像这样轻松地检查它:

代码语言:javascript
复制
    const oneHour = 60 * 60
    const oneWeek = 7 * 24 * oneHour;
    const randomData = generateArray();
    
    function generateArray () {
        let arr = [];

        for(i = 0; i < 10000000; i++) {
            arr.push(Math.floor(Math.random() * 10))
        }

        return arr;
    }

    function checkTime1(timePast) {
        if (timePast<7 * 24 * oneHour) {
            Math.random()
        }
    }

    function checkTime2(timePast) {
        if (timePast<oneWeek) {
            Math.random()
        }
    }

    console.time('checkTime1');
    randomData.forEach(i => checkTime1(i))
    console.timeEnd('checkTime1');

    console.time('checkTime2');
    randomData.forEach(i => checkTime2(i))
    console.timeEnd('checkTime2');

在多次检查之后,更改"checkTime2“和"checkTime1”的顺序,以确保结果有效。看起来Node.js足够聪明,可以做额外的计算。

票数 1
EN

Stack Overflow用户

发布于 2021-03-22 19:25:46

根据这篇文章:Node.js Under The Hood #10 - Compiler Optimizations!节点的编译器将执行常量折叠优化,这样const j = 3 + 9就会变成const j = 12

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62485887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档