[MediaWiki-commits] [Gerrit] mediawiki...parsoid[master]: Trace time spent in the PEG tokenizer

2016-08-05 Thread jenkins-bot (Code Review)
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 
Gerrit-Reviewer: Arlolra 
Gerrit-Reviewer: Cscott 
Gerrit-Reviewer: Legoktm 
Gerrit-Reviewer: Tim Starling 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki...parsoid[master]: Trace time spent in the PEG tokenizer

2016-07-30 Thread Subramanya Sastry (Code Review)
Subramanya Sastry has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/302066

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, 17 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/66/302066/1

diff --git a/lib/wt2html/tokenizer.js b/lib/wt2html/tokenizer.js
index 20f0d5d..6178e51 100644
--- a/lib/wt2html/tokenizer.js
+++ b/lib/wt2html/tokenizer.js
@@ -48,6 +48,8 @@
 function PegTokenizer(env, options) {
events.EventEmitter.call(this);
this.env = env;
+   var traceFlags = env.conf.parsoid.traceFlags;
+   this.traceTime = traceFlags && traceFlags.indexOf('time') !== -1;
this.options = options || {};
this.offsets = {};
 }
@@ -245,6 +247,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 +291,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 +321,7 @@
};
 
try {
-   iterator = this.tokenizer.parse(text, args);
+   iterator = this._tokenize(text, args);
} catch (e) {
this.env.log("fatal", e);
return;
@@ -348,7 +362,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: newchange
Gerrit-Change-Id: I6462bcf21a18d2f7a4e2065a2ad93f010cda87ee
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits