gpt4 book ai didi

node.js - 在 Node 8 中 process.env.NODE_ENV 仍然很慢吗

转载 作者:行者123 更新时间:2023-12-02 02:53:03 28 4
gpt4 key购买 nike

不久前我在小道消息中听说,来自 process.env对 Node.js 的性能造成了影响。我想知道是否有人可以澄清情况是否仍然如此,应该避免调用 process.env 或者它是否对性能没有影响?

谢谢!

最佳答案

您可以使用 process.hrtime() 为此设置自己的测试,让我们尝试多次阅读它,看看我们得到了什么:

const time = process.hrtime();
const NS_PER_SEC = 1e9;
const loopCount = 10000000;

let hrTime1 = process.hrtime(time);

for (var i = 0; i < loopCount; i++)
{
let result = process.env.TEST_VARIABLE
}

let hrTime2 = process.hrtime(time);

let ns1 = hrTime1[0] * NS_PER_SEC + hrTime1[1];
let ns2 = hrTime2[0] * NS_PER_SEC + hrTime2[1];

console.log(`Read took ${(ns2 - ns1)/loopCount} nanoseconds`);

我的机器上的结果(旧式 Windows Tower,Node v8.11.2):
Read took 222.5536641 nanoseconds

所以大约 0.2 微秒。

这非常快......当我们谈论性能问题时,一切都是相对的。如果您真的需要非常频繁地阅读它,最好将其缓存。

为了清楚起见,让我们测试这两种情况:
// Cache
const test = process.env.TEST_VARIABLE;
let loopCount = 10000000; console.time("process.env cached"); for (var i = 0; i < loopCount; i++) { let result = test } console.timeEnd("process.env cached");


// No cache
loopCount = 10000000; console.time("process.env uncached"); for (var i = 0; i < loopCount; i++) { let result = process.env.TEST_VARIABLE } console.timeEnd("process.env uncached");

缓存时这需要约 10 毫秒,当没有使用变量来缓存值时需要约 2 秒。

关于node.js - 在 Node 8 中 process.env.NODE_ENV 仍然很慢吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51138302/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com