Current section

Files

Jump to
mdex benchmark.exs
Raw

benchmark.exs

deps = [
{:req, "~> 0.6"},
{:benchee, "~> 1.5"},
{:earmark, "~> 1.4"},
{:md, "~> 0.12"},
{:cmark, "~> 0.10"},
{:mdex, "~> 0.13"},
{:mdex_native, "~> 0.2"},
{:markdown, github: "WhatsApp/erlang-markdown", subdir: "apps/markdown", manager: :rebar3}
]
Mix.install(deps)
defmodule Benchmark do
@markdown Req.get!("https://raw.githubusercontent.com/leandrocp/mdex/main/README.md").body
def run do
benchmarks = %{
"earmark" => fn -> Earmark.as_html(@markdown) end,
"md" => fn -> Md.generate(@markdown) end,
"cmark" => fn -> Cmark.to_html(@markdown) end,
"mdex" => fn -> MDEx.to_html(@markdown, syntax_highlight: nil) end,
"mdex_native" => fn -> MDExNative.Comrak.markdown_to_html(@markdown) end,
"erlang-markdown" => fn -> :markdown.to_html(@markdown) end
}
Benchee.run(
benchmarks,
memory_time: 2,
reduction_time: 2,
formatters: [{Benchee.Formatters.Console, extended_statistics: true}]
)
end
end
Benchmark.run()