gpt4 book ai didi

javascript - Nodejs 服务器 - 通过使循环迭代异步来提高性能

转载 作者:行者123 更新时间:2023-11-30 12:33:49 27 4
gpt4 key购买 nike

考虑以下服务器端 nodejs 代码。假设循环内的代码是原子的(代码应该执行一次)并且迭代之间没有依赖性...

for (var i=0; i<aVeryLargeValue; i++){
//do atomic complex calculations
}

有没有一种方法可以通过将循环分成多个部分以便异步执行迭代来提高服务器性能?

最佳答案

您的问题似乎是 aVeryLargeValue 导致服务器处理此循环的时间过长,因此阻止了其他请求。

使用 async 模块处理它。您可以使用 while 函数将循环分成几部分。

var async = require('async');

var aVeryLargeValue=99999;
var i=0;
async.whilst(
function() { return i < aVeryLargeValue; },
function(callback) {
for(x=i;x<i+1000;x++) {
//do something
}
i+=1000;
callback();
},
function(err) {
if(err) throw err;
}
);

如果这真的是 CPU 密集型的东西,那么你最好使用子进程来处理它。上面的代码主要适用于您必须处理可能需要几秒钟的大型请求但又不想在这几秒钟内等待其余请求的情况。如果您的处理时间超过几秒钟,那么您应该将其卸载到子进程。

关于javascript - Nodejs 服务器 - 通过使循环迭代异步来提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751952/

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