Skip to content

Performance

Version 6 replaces the HtmlAgilityPack-based v5 engine with an AngleSharp HTML5 parser feeding a purpose-built Markdown DOM and per-flavor writers. Beyond being more correct, the new pipeline is substantially faster and allocates far less memory.

ReverseMarkdown v5 vs v6 performance

Results

Measured with BenchmarkDotNet on .NET 9.0 (Apple M1), comparing the published ReverseMarkdown 5.5.0 (HtmlAgilityPack) against 6.0.0 (AngleSharp + Markdown DOM) on the same inputs. Lower is better.

FixtureMean time v5 → v6Allocated v5 → v6
1000 paragraphs13.7 → 5.2 ms (2.6× faster)21 → 7 MB (2.8× less)
10k paragraphs119.1 → 63.1 ms (1.9× faster)183 → 67 MB (2.7× less)
huge.html540.6 → 244.3 ms (2.2× faster)779 → 288 MB (2.7× less)

Across the board v6 runs roughly 2–2.6× faster and allocates about 2.7× less memory. The memory reduction is the bigger practical win: less GC pressure keeps throughput steady when converting large documents or many documents concurrently.

Reproducing the benchmark

The benchmark lives in src/ReverseMarkdown.Benchmark and references the published NuGet package, so you can swap the version between runs to compare releases:

bash
# v6 (default)
dotnet run -c Release --project src/ReverseMarkdown.Benchmark

# v5, for comparison
dotnet run -c Release --project src/ReverseMarkdown.Benchmark -p:RMVersion=5.5.0

Numbers vary with hardware and runtime; the relative gap between v5 and v6 is the point.

Released under the MIT License.