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

Reply via email to