似乎没有,当我下载一批网址时发生并行下载。网址下载的完成时间比单独下载时要晚。
我正在使用带有4GB RAM的2核心ec2机器。所有系统资源(cpu,ram,network)都非常稳定,批量大小为30 url。此处使用的连接超时为30秒。他们的网址最长可达15秒,20秒,23秒,单独运行时可在3-6秒内完成。不应该在这里发生并行IO。我错过了什么?
let startDate new Date();
let finishDate;
const puppeteer = require('puppeteer');
await puppeteer.launch().then(async browser => {
const promises=[];
urlArr.forEach(function(url){
promises.push(browser.newPage().then(async page => {
try{
await page.goto(url.startsWith('http') ? url :
`http://${url}`, {
waitUntil: ['load'],timeout:connectionTimeOut
});
const html = await page.content();
finishDate = new Date();
console.log("html download complete for " + url + " - " +
finishDate.getTime() + " - " + (finishDate.getTime() -
startDate.getTime())/1000);
}catch(err){
console.log(err)
}
}))
});
await Promise.all(promises)
await browser.close();
})