summaryrefslogtreecommitdiff
path: root/benchmarks.md
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks.md')
-rw-r--r--benchmarks.md29
1 files changed, 18 insertions, 11 deletions
diff --git a/benchmarks.md b/benchmarks.md
index 3010091..574daf5 100644
--- a/benchmarks.md
+++ b/benchmarks.md
@@ -4,23 +4,30 @@ Some benchmarks, run on an ancient Thinkpad running Intel Core 2 Duo at 2GHz.
|Implementation | Time (sec)| Factor |
|-------------------|-----------:|--------:|
-| Markdown.pl | 2921.30 | 14606.5 |
-| kramdown | 20.76 | 103.8 |
-| PHP markdown | 20.475 | 102.4 |
-| lunamark | 6.195 | 40.0 |
-| cheapskate | 5.645 | 28.2 |
-| peg-markdown | 5.330 | 26.7 |
-| **commonmark.js** | 2.730 | 13.6 |
-| marked | 1.870 | 9.4 |
-| discount | 1.660 | 8.3 |
-| **cmark** | 0.320 | 1.6 |
+| Markdown.pl | 2921.24 | 14606.2 |
+| PHP markdown | 20.85 | 104.3 |
+| kramdown | 20.83 | 104.1 |
+| lunamark | 6.295 | 31.5 |
+| cheapskate | 5.760 | 28.8 |
+| peg-markdown | 5.450 | 27.3 |
+| **commonmark.js** | 2.675 | 13.4 |
+| marked | 1.855 | 9.3 |
+| discount | 1.705 | 8.5 |
+| **cmark** | 0.315 | 1.6 |
| sundown | 0.200 | 1.0 |
+
To run these benchmarks, use `make bench PROG=/path/to/program`.
The input text is a 10MB Markdown file built by concatenating 20 copies
of the Markdown source of the first edition of [*Pro
Git*](https://github.com/progit/progit/tree/master/en) by Scott Chacon.
-`time` is used to measure execution speed.
+`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 implementation dynamic languages are
+not prenalized 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.