Commit e62b61b8 authored by pfeldman's avatar pfeldman Committed by Commit bot

DevTools: generate dot file with module sizes in visualizer.

Review-Url: https://codereview.chromium.org/2620363003
Cr-Commit-Position: refs/heads/master@{#443118}
parent 07724bd4
...@@ -15,13 +15,31 @@ const OUT = path.resolve(__dirname, 'out', 'dependencies.dot'); ...@@ -15,13 +15,31 @@ const OUT = path.resolve(__dirname, 'out', 'dependencies.dot');
function main() { function main() {
const modules = new Set(); const modules = new Set();
const moduleToDependencyList = ['digraph dependencies {']; const moduleToDependencyList = ['digraph dependencies {'];
moduleToDependencyList.push('fixedsize = true;')
fs.readdirSync(FRONTEND_PATH).forEach(function(file) { fs.readdirSync(FRONTEND_PATH).forEach(function(file) {
const moduleJSONPath = path.join(FRONTEND_PATH, file, 'module.json'); const moduleJSONPath = path.join(FRONTEND_PATH, file, 'module.json');
if (fs.statSync(path.join(FRONTEND_PATH, file)).isDirectory() && if (fs.statSync(path.join(FRONTEND_PATH, file)).isDirectory() &&
utils.isFile(moduleJSONPath)) { utils.isFile(moduleJSONPath)) {
const module = file; const module = file;
if (module === 'audits2_worker')
return;
modules.add(module); modules.add(module);
const moduleJSON = require(moduleJSONPath); const moduleJSON = require(moduleJSONPath);
let moduleSize = 0;
let resources = (moduleJSON.scripts || []).concat((moduleJSON.resources || []));
for (let script of resources) {
if (fs.existsSync(path.join(FRONTEND_PATH, module, script))) {
console.log(path.join(FRONTEND_PATH, module, script));
moduleSize += fs.statSync(path.join(FRONTEND_PATH, module, script)).size;
}
}
moduleSize /= 200000;
moduleSize = Math.max(0.5, moduleSize);
let fontSize = Math.max(moduleSize*14, 14);
moduleToDependencyList.push(`${module} [width=${moduleSize}, height=${moduleSize} fontsize=${fontSize}];`);
if (moduleJSON.dependencies) { if (moduleJSON.dependencies) {
for (let d of moduleJSON.dependencies) { for (let d of moduleJSON.dependencies) {
moduleToDependencyList.push(` ${module} -> ${d}`); moduleToDependencyList.push(` ${module} -> ${d}`);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment