【发布时间】:2021-06-29 10:00:04
【问题描述】:
我正在尝试了解向网页添加额外脚本的影响。
我的第一次尝试是使用 Lighthouse,并尝试在添加脚本之前和之后计算指标:
const fs = require('fs');
const playwright = require('playwright');
const lighthouse = require('lighthouse');
const args = require('minimist')(process.argv.slice(2));
const BROWSER_CONTEXT_DIR = 'browserContextDir';
async function main(inject) {
const context = await playwright.chromium.launchPersistentContext(BROWSER_CONTEXT_DIR, {
args: [`--remote-debugging-port=8041`],
headless: false,
});
if (inject){
await context.addInitScript({
path: 'script.js'
})
}
const lhOptions = {
port: 8041,
onlyCategories: ['performance']
};
const result = await lighthouse(args.url, lhOptions);
fs.writeFileSync('lhreport.json', JSON.stringify(result.lhr.audits, null, 2));
await context.close();
fs.rmdirSync(BROWSER_CONTEXT_DIR, { recursive: true });
return {
speed: result.lhr.audits['speed-index'],
cpu: result.lhr.audits['first-cpu-idle'],
blocking: result.lhr.audits['total-blocking-time']
}
}
虽然这可行,但每次运行灯塔的结果差异太大。似乎正确的方法是单独执行此操作,而不是通过注入实时站点。
我可以采取哪些方法来衡量第三方脚本对 CPU、内存和站点速度的影响?
【问题讨论】:
标签: node.js performance web browser lighthouse