mirror of
https://github.com/xoofx/markdig.git
synced 2026-02-15 14:05:39 +00:00
[PR #751] [MERGED] .NET 8.0 and a few other perf improvements #1204
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/xoofx/markdig/pull/751
Author: @MihaZupan
Created: 11/25/2023
Status: ✅ Merged
Merged: 11/25/2023
Merged by: @xoofx
Base:
master← Head:net8📝 Commits (10+)
4eea9dbAdd .NET 8.0 target1f1364eAdd SearchValues polyfill and use it in CharacterMape4f57caFix build warnings047c4cbSkip _lineBits read on MarkdownObject creation7803417Rewrite CodeInline matching to make use of vectorizationb0bde46Defer position calculations in LiteralInlineParserc7aec82Speed up a few character checks5cff880Remove temporary string allocations in AutoIdentifierExtension4f1cb9dAvoid allocating strings for known emphasis character fallbacks87aa32eOptimize WriteEscape📊 Changes
27 files changed (+576 additions, -504 deletions)
View changed files
📝
.github/workflows/ci.yml(+5 -2)📝
src/Markdig.Tests/Markdig.Tests.csproj(+1 -1)📝
src/Markdig.Tests/TestYamlFrontMatterExtension.cs(+3 -0)📝
src/Markdig/Extensions/AutoIdentifiers/AutoIdentifierExtension.cs(+17 -12)📝
src/Markdig/Helpers/BlockWrapper.cs(+1 -1)📝
src/Markdig/Helpers/CharHelper.cs(+26 -33)📝
src/Markdig/Helpers/CharacterMap.cs(+24 -206)📝
src/Markdig/Helpers/FastStringWriter.cs(+3 -4)➕
src/Markdig/Helpers/HexConverter.cs(+27 -0)📝
src/Markdig/Helpers/LineReader.cs(+2 -2)📝
src/Markdig/Helpers/LinkHelper.cs(+16 -2)📝
src/Markdig/Helpers/ObjectCache.cs(+1 -1)📝
src/Markdig/Helpers/StringSlice.cs(+1 -1)📝
src/Markdig/Markdig.targets(+2 -2)📝
src/Markdig/Markdown.cs(+4 -10)📝
src/Markdig/Parsers/Inlines/CodeInlineParser.cs(+78 -69)📝
src/Markdig/Parsers/Inlines/LiteralInlineParser.cs(+6 -10)➕
src/Markdig/Polyfills/Ascii.cs(+30 -0)➕
src/Markdig/Polyfills/EncodingExtensions.cs(+24 -0)➕
src/Markdig/Polyfills/IndexOfHelpers.cs(+46 -0)...and 7 more files
📄 Description
Ascii,SearchValues,ContainsAnyExcept...)CharacterMap.IndexOfOpeningCharacterimplementation with a call toIndexOfAny(SearchValues)CodeInlineParser.Matchto make use of vectorized helpersWriteEscape&WriteEscapeUrlrendering (vectorized scanning via SearchValues)A few rough numbers from parsing a large markdown document with precise source locations (.NET 8 perf improvements blogpost).
Both
mainandprnumbers are from 8.0Including 7.0 vs 8.0 comparison
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.