diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c2658d7d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/Makefile b/Makefile index 76904000..20ac2d40 100644 --- a/Makefile +++ b/Makefile @@ -6,4 +6,7 @@ clean: @rm marked.js @rm marked.min.js +bench: + @node test --bench + .PHONY: clean all diff --git a/README.md b/README.md index bb8feff7..a1acf68e 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,19 @@ For those feeling skeptical: These benchmarks run the entire markdown test suite 1000 times. The test suite tests every feature. It doesn't cater to specific aspects. +node v0.8.x + +``` bash +$ node test --bench +marked completed in 3411ms. +marked (gfm) completed in 3727ms. +marked (pedantic) completed in 3201ms. +robotskirt completed in 808ms. +showdown (reuse converter) completed in 11954ms. +showdown (new converter) completed in 17774ms. +markdown-js completed in 17191ms. +``` + ## Install ``` bash diff --git a/package.json b/package.json index 5a71165d..48b8284e 100644 --- a/package.json +++ b/package.json @@ -12,5 +12,10 @@ "bugs": { "url": "http://github.com/chjj/marked/issues" }, "keywords": ["markdown", "markup", "html"], "tags": ["markdown", "markup", "html"], + "devDependencies": { + "markdown": "*", + "showdown": "*", + "robotskirt": "*" + }, "scripts": { "test": "node test", "bench": "node test --bench" } } diff --git a/test/index.js b/test/index.js index d2d7a593..9059b573 100644 --- a/test/index.js +++ b/test/index.js @@ -237,13 +237,16 @@ function runBench(options) { } bench('marked (pedantic)', marked); - // Discount - var discount = require('discount').parse; - bench('discount', discount); + // robotskirt + var rs = require('robotskirt'); + bench('robotskirt', function(text) { + var parser = rs.Markdown.std(); + return parser.render(text); + }); // Showdown (Reusing the converter) var showdown = (function() { - var Showdown = require('showdown').Showdown; + var Showdown = require('showdown'); var convert = new Showdown.converter(); return function(text) { return convert.makeHtml(text); @@ -253,7 +256,7 @@ function runBench(options) { // Showdown var showdown_slow = (function() { - var Showdown = require('showdown').Showdown; + var Showdown = require('showdown'); return function(text) { var convert = new Showdown.converter(); return convert.makeHtml(text); @@ -263,9 +266,7 @@ function runBench(options) { // markdown-js var markdownjs = require('markdown'); - bench('markdown-js', function(text) { - markdownjs.parse(text); - }); + bench('markdown-js', markdownjs.parse); } /**