aboutsummaryrefslogtreecommitdiff
path: root/lib/cmark/benchmarks.md
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-09 18:27:38 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-09 18:27:38 +0200
commitde8fd9328e9deb0d1ec596d7486686ea3cb688c2 (patch)
tree9c25d7568dee522c1d2ed7b6d238d1dad54163f6 /lib/cmark/benchmarks.md
parent661ddc244793102ee0720871c4edcd64f80bc744 (diff)
downloadkristall-de8fd9328e9deb0d1ec596d7486686ea3cb688c2.tar.gz
Includes cmark markdown parser library.
Diffstat (limited to 'lib/cmark/benchmarks.md')
-rw-r--r--lib/cmark/benchmarks.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/cmark/benchmarks.md b/lib/cmark/benchmarks.md
new file mode 100644
index 0000000..ec96f6e
--- /dev/null
+++ b/lib/cmark/benchmarks.md
@@ -0,0 +1,33 @@
+# Benchmarks
+
+Here are some benchmarks, run on an ancient Thinkpad running Intel
+Core 2 Duo at 2GHz. The input text is a 11MB Markdown file built by
+concatenating the Markdown sources of all the localizations of the
+first edition of
+[*Pro Git*](https://github.com/progit/progit/tree/master/en) by Scott
+Chacon.
+
+|Implementation | Time (sec)|
+|-------------------|-----------:|
+| Markdown.pl | 2921.24 |
+| Python markdown | 291.25 |
+| PHP markdown | 20.82 |
+| kramdown | 17.32 |
+| cheapskate | 8.24 |
+| peg-markdown | 5.45 |
+| parsedown | 5.06 |
+| **commonmark.js** | 2.09 |
+| marked | 1.99 |
+| discount | 1.85 |
+| **cmark** | 0.29 |
+| hoedown | 0.21 |
+
+To run these benchmarks, use `make bench PROG=/path/to/program`.
+
+`time` is used to measure execution speed. The reported
+time is the *difference* between the time to run the program
+with the benchmark input and the time to run it with no input.
+(This procedure ensures that implementations in dynamic languages are
+not penalized by startup time.) A median of ten runs is taken. The
+process is reniced to a high priority so that the system doesn't
+interrupt runs.