jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/383936 )
Change subject: Improve reporting of parse times by tracking initializations ...................................................................... Improve reporting of parse times by tracking initializations Change-Id: Ic674cdcdc0e0e15c4c9e89be79155e953ce78d91 --- M bin/parse.js M lib/wt2html/parser.js 2 files changed, 22 insertions(+), 1 deletion(-) Approvals: jenkins-bot: Verified Arlolra: Looks good to me, approved diff --git a/bin/parse.js b/bin/parse.js index ba32008..1c4441e 100755 --- a/bin/parse.js +++ b/bin/parse.js @@ -19,6 +19,8 @@ var yargs = require('yargs'); var yaml = require('js-yaml'); +var initTime; + process.on('SIGUSR2', function() { var heapdump = require('heapdump'); console.error('SIGUSR2 received! Writing snapshot.'); @@ -240,12 +242,22 @@ var parse = exports.parse = function(input, argv, parsoidConfig, prefix, domain) { var env; + var s1, s2; + s1 = Date.now(); return ParserEnv.getParserEnv(parsoidConfig, { prefix: prefix, domain: domain, pageName: argv.page, }).then(function(_env) { env = _env; + env.startTime = s1; + if (initTime) { + // When used in lib/index.js as an exported module, + // this will be undefined. And, since we will be + // may be using this in a repl setup, init time is + // not as relevant. + env.bumpTimeUse("Init", initTime); + } // fetch templates from enwiki by default. if (argv.wgScriptPath) { @@ -294,6 +306,9 @@ if (typeof input === 'string') { return input; } + + s2 = Date.now(); + env.bumpTimeUse("Setup Environment", s2 - s1); if (argv.inputfile) { // read input from the file, then process @@ -348,6 +363,7 @@ } return startsAtHTML(argv, env, str, pb); } else { + env.bumpTimeUse("Pre-parse (source fetch)", Date.now() - s2); return startsAtWikitext(argv, env, str); } }); @@ -355,6 +371,7 @@ if (require.main === module) { (function() { + var start = Date.now(); var defaultModeStr = "Default conversion mode : --wt2html"; var opts = yargs.usage( @@ -448,6 +465,8 @@ } } + initTime = Date.now() - start; + return parse(null, argv, pc, prefix, domain) .then(function(res) { var stdout = process.stdout; diff --git a/lib/wt2html/parser.js b/lib/wt2html/parser.js index dc77ed9..caf40ce 100644 --- a/lib/wt2html/parser.js +++ b/lib/wt2html/parser.js @@ -478,7 +478,9 @@ // maintained across all pipelines used by the document. // (Ex: Cite state) this.resetState({ toplevel: true }); - this.env.startTime = Date.now(); + if (!this.env.startTime) { + this.env.startTime = Date.now(); + } this.env.log('trace/time', 'Starting parse at ', this.env.startTime); this.process(input); }; -- To view, visit https://gerrit.wikimedia.org/r/383936 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ic674cdcdc0e0e15c4c9e89be79155e953ce78d91 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Subramanya Sastry <ssas...@wikimedia.org> Gerrit-Reviewer: Arlolra <abrea...@wikimedia.org> Gerrit-Reviewer: C. Scott Ananian <canan...@wikimedia.org> Gerrit-Reviewer: Sbailey <sbai...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits