Index: tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/htmlparser2/tests/bench.js |
diff --git a/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/htmlparser2/tests/bench.js b/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/htmlparser2/tests/bench.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..01ceeefb15c20cac71a322fc725b595c5f7be0b6 |
--- /dev/null |
+++ b/tools/vulcanize/node_modules/vulcanize/node_modules/cheerio/node_modules/htmlparser2/tests/bench.js |
@@ -0,0 +1,135 @@ |
+//dependencies have to be installed manually |
+ |
+var ben = require("ben"); |
+ |
+var parsers = []; |
+ |
+ |
+try{ |
+ var node_xml = require("node-xml"); |
+ |
+ function NodeXmlParser() { |
+ var parser = new node_xml.SaxParser(function(cb) { }); |
+ this.parse = function(s) { |
+ parser.parseString(s); |
+ }; |
+ } |
+ parsers.push([NodeXmlParser, "node-xml"]); |
+} catch(e){} |
+ |
+try{ |
+ var libxml = require("libxmljs"); |
+ |
+ function LibXmlJsParser() { |
+ var parser = new libxml.SaxPushParser(function(cb) { }); |
+ this.parse = function(s) { |
+ parser.push(s, false); |
+ }; |
+ } |
+ |
+ parsers.push([LibXmlJsParser, "libxmljs"]); |
+} catch(e){} |
+ |
+try{ |
+ var sax = require('sax'); |
+ |
+ function SaxParser() { |
+ var parser = sax.parser(); |
+ this.parse = function(s) { |
+ parser.write(s); |
+ }; |
+ } |
+ |
+ parsers.push([SaxParser, "sax"]); |
+} catch(e){} |
+ |
+try{ |
+ var expat = require('node-expat'); |
+ |
+ function ExpatParser() { |
+ var parser = new expat.Parser(); |
+ this.parse = function(s) { |
+ parser.parse(s, false); |
+ }; |
+ } |
+ |
+ parsers.push([ExpatParser, "node-expat"]); |
+} catch(e){} |
+ |
+try{ |
+ var htmlparser = require('htmlparser'); |
+ |
+ function HtmlParser() { |
+ var handler = new htmlparser.DefaultHandler(); |
+ var parser = new htmlparser.Parser(handler); |
+ this.parse = function(s) { |
+ parser.parseComplete(s); |
+ }; |
+ } |
+ |
+ parsers.push([HtmlParser, "htmlparser"]); |
+} catch(e){} |
+ |
+ |
+try{ |
+ var hubbub = require('hubbub'); |
+ |
+ function Hubbub() { |
+ var handler = new hubbub.DefaultHandler(); |
+ var parser = new hubbub.Parser(handler); |
+ this.parse = function(s) { |
+ parser.parseComplete(s); |
+ }; |
+ } |
+ |
+ parsers.push([Hubbub, "hubbub"]); |
+} catch(e){} |
+ |
+try{ |
+ var htmlParser = require("html-parser"); |
+ |
+ function HTMLParser() { |
+ var cbs = {}; |
+ this.parse = function(s){ |
+ htmlParser.parse(s, cbs); |
+ }; |
+ } |
+ |
+ parsers.push([HTMLParser, "html-parser"]); |
+} catch(e){} |
+ |
+try{ |
+ var htmlparser2 = require('../lib/Parser.js'); |
+ |
+ function HtmlParser2() { |
+ var parser = new htmlparser2(); |
+ this.parse = function(s) { |
+ parser.write(s); |
+ }; |
+ } |
+ |
+ parsers.push([HtmlParser2, "htmlparser2"]); |
+} catch(e){} |
+ |
+var results = parsers.map(function(arr){ |
+ var p = new arr[0](); |
+ var name = arr[1]; |
+ |
+ process.stdout.write(name + ":" + Array(14-name.length).join(" ")); |
+ |
+ p.parse("<r>"); |
+ var num = ben(1e6, function(){ |
+ p.parse("<foo bar='baz'>quux</foo>"); |
+ }); |
+ |
+ console.log((num > 0.01 ? "" : "0") + (num * 1e3).toFixed(2), "ms/el"); |
+ |
+ return [name, num]; |
+}); |
+ |
+console.log( |
+ "\nWinner:", |
+ results.sort(function(a, b){ |
+ return a[1] - b[1]; |
+ })[0][0] |
+); |