Javascript process.env.UV\u线程池\u大小不工作?
我试图理解nodeJS中的线程池。 在运行代码时创建Javascript process.env.UV\u线程池\u大小不工作?,javascript,node.js,libuv,Javascript,Node.js,Libuv,我试图理解nodeJS中的线程池。 在运行代码时创建process.env.UV\u THREADPOOL\u SIZE=5 process.env.UV_THREADPOOL_SIZE=5; 常量https=require('https'); const crypto=require('crypto'); 常数fs=要求('fs'); const start=Date.now() 函数doRequest(){ https.request('https://google.com,res=>{
process.env.UV\u THREADPOOL\u SIZE=5代码>
process.env.UV_THREADPOOL_SIZE=5;
常量https=require('https');
const crypto=require('crypto');
常数fs=要求('fs');
const start=Date.now()
函数doRequest(){
https.request('https://google.com,res=>{
res.on('data',()=>{});
res.on('结束',()=>{
console.log('Request:',Date.now()-start)
})
})
(完)
}
函数doHash(){
pbkdf2(“a”,“b”,100000,512,'sha512',()=>{
log(“Hash:,Date.now()-start”);
})
}
doRequest();
fs.readFile('multitask.js','utf8',()=>{
console.log('fs:',Date.now()-start)
});
doHash();
doHash();
doHash();
doHash()代码>在linux上,您的代码运行良好:
UV_线程池大小=1强>
fs: 20
Request: 108
Hash: 817
Hash: 1621
Hash: 2399
Hash: 3175
UV\u线程池大小=5
fs: 11
Request: 120
Hash: 836
Hash: 857
Hash: 859
Hash: 871
如果您使用的是windows,而不是在javascript文件中进行设置,则必须在调用脚本之前进行设置
set UV_THREADPOOL_SIZE=1 & node app.js
对我来说,最简单的解决方案就是添加一个npm脚本条目,如下所示:
{
...
"main": "app.js",
"scripts": {
"start": "set UV_THREADPOOL_SIZE=2 & node app.js"
},
...
}
然后,在cmd中:
npm run start
这里的问题来自udemy课程节点JS高级概念。
我试着动态设置线程。但在windows上,它不会工作。
在Windows上按照上述说明操作
const OS = require("os")
process.env.UV_THREADPOOL_SIZE = OS.cpus().length
您在哪个操作系统上运行脚本?windows?是的,我使用的是windows。唯一适合我的解决方案。嗨,windows中有没有办法将其设置为js文件中类似于linux的变量?或者为什么它与linux如此不同?