node.js - Electron successiva nätverksförfrågningar för långsamma
Jag har en Electron-app, med en modul där jag behöver skicka flera (5000) på varandra följande förfrågningar till en RESTful-endpoint. Att testa de på varandra följande förfrågningarna till denna endpoint från webbläsarfönstret ger svarstider på 80 ms, men nu behöver jag implementera det på Electron-sidan (Node.js), och när jag kör ett test med 100 förfrågningar med koden nedan är svarstiderna aldrig mindre än 500 ms och ökar när jag skickar fler.
Jag testade detta med Axios också, och svarstiderna är desamma (> 500 ms).
testHttp() {
const buffer = Buffer.alloc(5 * 1024, 1);
const agent = new https.Agent({
keepAlive: true
});
agent.maxSockets = 1000000;
const post_options = {
hostname: this.baseUrl.substr(8),
path: '/status/welcome',
method: 'POST',
port: 443,
agent: agent,
headers: {}
};
for (let i = 0; i < 100; i++) {
// Set up the request
let prepTime = 0;
const post_req = https.request(post_options, function (res) {
let rawResponse = '';
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log(post_req.reusedSocket);
rawResponse += chunk;
});
res.on('end', () => {
try {
const parsedData = JSON.parse(rawResponse);
console.log('Time Elapsed for Status Welcome : ' + (new Date().getTime() - prepTime) + ' ms');
} catch (e) {
console.error(e.message);
}
});
});
// post the data
prepTime = new Date().getTime();
post_req.write(buffer);
post_req.end();
}
}