windows下设置process.env.UV_THREADPOOL_SIZE无效

点墨 -
windows下设置process.env.UV_THREADPOOL_SIZE无效

node在执行IO操作(读取文件)时会开启线程池(默认是4个),我们可以通过设置UV_THREADPOOL_SIZE增加线程池个数。

背景:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset=UTF-8>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name=viewport content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
const fs = require("fs");

process.env.UV_THREADPOOL_SIZE=64;

setInterval(() => {
    fs.readFile(`${__dirname}/index.html`,()=>{
        console.log("read success");
    })
}, 3000);
{
  "name": "threadpool",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start":"node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

在windows下运行node,发现process.env.UV_THREADPOOL_SIZE设置无效。

线程数量应该从12增加到76个,实际为16个,说明UV_THREADPOOL_SIZE设置无效
image.png
image.png

原因:
Linux系统下可以在js代码里直接设置,而windows系统下需要在执行node命令前设置线程池数量,将node启动改为如下图(注:=号左右不要有空格)
image.png
运行结果:
image.png

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

node.js

扩展阅读

加个好友,技术交流

1628738909466805.jpg