blob: 8d0087e934375b47c53d781be928d764ceb63216 (
plain)
Benchmarks
Some benchmarks, run on an ancient Thinkpad running Intel Core 2 Duo at 2GHz.
|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.26 |
| marked | 1.93 |
| discount | 1.86 |
| cmark | 0.37 |
| sundown | 0.34 |
To run these benchmarks, use make bench PROG=/path/to/program .
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.
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.
JavaScript libraries
Here are some JavaScript benchmarks using node.js .
They can be run using make benchjs . The source text is
the CommonMark README.md file, but can be configured by
setting the BENCHINP environment variable.
Implementation | Ops/sec
----------------|-------------------
commonmark.js | 485 ops/sec ±1.04%
showdown.js | 170 ops/sec ±2.06%
marked.js | 552 ops/sec ±0.43%
markdown-it | 700 ops/sec ±1.05%
|