Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web包环境变量性能_Javascript_Node.js_Webpack_Environment Variables - Fatal编程技术网

Javascript Web包环境变量性能

Javascript Web包环境变量性能,javascript,node.js,webpack,environment-variables,Javascript,Node.js,Webpack,Environment Variables,我正在看报纸,突然看到下面一行: 请注意,检查任何环境变量的值都会导致性能损失,因此应谨慎进行 我的问题是为什么检查环境变量的值(如< C++ >进程,Env.NoDeEnv< )如此昂贵?< /强> < p> 进程。跨越C++运行时和JavaScript之间的边界是相当昂贵的,特别是与简单的对象访问相比。请参阅,了解其中的一些原因 访问process.env确实会严重影响性能,通常可以通过缓存所需的值来避免。例如,React过去经常出现问题,这导致性能成本约为30%,因为存在各种proces

我正在看报纸,突然看到下面一行:

请注意,检查任何环境变量的值都会导致性能损失,因此应谨慎进行


我的问题是<强>为什么检查环境变量的值(如< C++ >进程,Env.NoDeEnv< <代码>)如此昂贵?< /强>

< p> <代码>进程。跨越C++运行时和JavaScript之间的边界是相当昂贵的,特别是与简单的对象访问相比。请参阅,了解其中的一些原因

访问
process.env
确实会严重影响性能,通常可以通过缓存所需的值来避免。例如,React过去经常出现问题,这导致性能成本约为30%,因为存在各种
process.env.NODE_env!==“生产”
条件

只要不过度使用
process.env
(例如在循环中),就不必担心性能影响。作为参考,基准测试结果如下所示:

结果:在未更改的
进程.env
上访问1亿个值需要32秒,而在普通对象
进程.env
上访问相同数量的值需要2秒

由于
process.env
是Node.js的一部分,并且在浏览器中不存在,因此如果将代码与webpack捆绑在一起,则不会获得任何性能影响,因为它提供了所需的值(除非将webpack配置为目标Node.js)。因此,webpack中任何有关
process.env
的性能都与构建过程有关。由webpack执行并会影响构建时间的来自用户的唯一代码是配置中的任何内容。在大多数情况下,这是完全无关的,除了频繁调用的任何内容,特别是对于每个已处理的文件。例如,在加载器或任何定义用于确定规则是否应应用于给定文件的函数中,以及在插件中的较小程度上