jenkins-bot has submitted this change and it was merged. Change subject: Trace time spent in the PEG tokenizer ......................................................................
Trace time spent in the PEG tokenizer Change-Id: I6462bcf21a18d2f7a4e2065a2ad93f010cda87ee --- M lib/wt2html/tokenizer.js 1 file changed, 18 insertions(+), 3 deletions(-) Approvals: Arlolra: Looks good to me, approved jenkins-bot: Verified diff --git a/lib/wt2html/tokenizer.js b/lib/wt2html/tokenizer.js index 20f0d5d..ba7138f 100644 --- a/lib/wt2html/tokenizer.js +++ b/lib/wt2html/tokenizer.js @@ -48,6 +48,9 @@ function PegTokenizer(env, options) { events.EventEmitter.call(this); this.env = env; + // env can be null during code linting + var traceFlags = env ? env.conf.parsoid.traceFlags : null; + this.traceTime = traceFlags && traceFlags.indexOf('time') !== -1; this.options = options || {}; this.offsets = {}; } @@ -245,6 +248,18 @@ this._processText(text, true); }; +PegTokenizer.prototype._tokenize = function(text, args) { + var start; + if (this.traceTime) { + start = new Date(); + } + var ret = this.tokenizer.parse(text, args); + if (this.traceTime) { + this.env.bumpTimeUse("PEG", (new Date() - start)); + } + return ret; +}; + /* * The main worker. Sets up event emission ('chunk' and 'end' events). * Consumers are supposed to register with PegTokenizer before calling @@ -277,7 +292,7 @@ if (fullParse) { args.startRule = "start"; try { - this.tokenizer.parse(text, args); + this._tokenize(text, args); } catch (e) { this.env.log("fatal", e); return; @@ -307,7 +322,7 @@ }; try { - iterator = this.tokenizer.parse(text, args); + iterator = this._tokenize(text, args); } catch (e) { this.env.log("fatal", e); return; @@ -348,7 +363,7 @@ sol: sol, }; } - var retToks = this.tokenizer.parse(text, args); + var retToks = this._tokenize(text, args); if (Array.isArray(retToks) && retToks.length > 0) { toks = JSUtils.pushArray(toks, retToks); -- To view, visit https://gerrit.wikimedia.org/r/302066 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I6462bcf21a18d2f7a4e2065a2ad93f010cda87ee Gerrit-PatchSet: 5 Gerrit-Project: mediawiki/services/parsoid Gerrit-Branch: master Gerrit-Owner: Subramanya Sastry <ssas...@wikimedia.org> Gerrit-Reviewer: Arlolra <abrea...@wikimedia.org> Gerrit-Reviewer: Cscott <canan...@wikimedia.org> Gerrit-Reviewer: Legoktm <legoktm.wikipe...@gmail.com> Gerrit-Reviewer: Tim Starling <tstarl...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits