traxxx/src/utils/jsdom-perf.js

33 lines
807 B
JavaScript

'use strict';
const fs = require('fs').promises;
const Promise = require('bluebird');
const { JSDOM } = require('jsdom');
async function init() {
let peak = 0;
const files = await fs.readdir('./html');
await Promise.map(Array.from({ length: 10 }).map(() => files).flat(), async (filename) => {
const html = await fs.readFile(`./html/${filename}`, 'utf8');
const dom = new JSDOM(html);
dom.window.close();
const usage = process.memoryUsage.rss() / 1000000;
peak = Math.max(usage, peak);
console.log(`Memory usage: ${usage.toFixed(2)} MB, peak ${peak.toFixed(2)} MB`);
await Promise.delay(100);
}, {
concurrency: 10,
});
await Promise.delay(2000);
console.log(`Final memory usage: ${(process.memoryUsage.rss() / 1000000).toFixed(2)} MB, max ${peak.toFixed(2)} MB`);
}
init();