在节点 js 8 中打印 libuv 线程池大小

print libuv threadpool size in node js 8

This link 纯粹指定 libuv 提供一个线程池,可用于 运行 用户代码并在循环线程中得到通知。它的默认大小为 4,但可以在启动时通过将 UV_THREADPOOL_SIZE 环境变量设置为任意值来更改。 (绝对最大值为 128)。

因此,在 package.json 中,我将 scripts 字段设置如下(注意:我正在使用 Windows 7,Node JS 8.11 .3, nodemon, 表达 4.16),

来自 package.json

的代码片段
.
.
.
"scripts": {
    "start": "SET UV_THREADPOOL_SIZE = 120 && node index.js",
  },
.
.
.

index.js

的代码
var express = require('express');
var app = express();

var server = app.listen(3000, function(){
    console.log('LIBUV Threads: ', process.env.UV_THREADPOOL_SIZE); // this returns 'undefined'
});

如何确定线程池大小已设置?我想像上面那样在 index.js 中打印出来。

你的 set 命令中不应该有空格。

set UV_THREADPOOL_SIZE=120 && node index.js

您还应该通过调用 start 脚本来启动您的 Node.js 程序:

npm start

否则将不会设置环境变量,您将在代码中访问它时继续得到 undefined

如果您使用的是 Nodemon,您可以确保您的 npm 脚本被 运行 带有额外参数的命令调用:

nodemon --exec npm start