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 by Scott Chacon.

ImplementationTime (sec)
Markdown.pl2921.24
Python markdown291.25
PHP markdown20.82
kramdown17.32
cheapskate8.24
peg-markdown5.45
parsedown5.06
commonmark.js2.09
marked1.99
discount1.85
cmark0.29
hoedown0.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.