mirror of
https://github.com/xoofx/markdig.git
synced 2026-02-03 21:36:36 +00:00
[PR #377] [MERGED] 10% time and 50% memory improvement #978
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/377
Author: @MihaZupan
Created: 10/14/2019
Status: ✅ Merged
Merged: 10/15/2019
Merged by: @xoofx
Base:
master← Head:allocation-reductions📝 Commits (10+)
253be5cCache HtmlRenderers in AutoIdentifier Extension606556bUse Write(Span) on NetCoreafe4308Cache HtmlRenderer on Pipeline for ToHtml(string, Pipeline)76c3e88Estimate LineCount from text Length to minimize List resizesaefad21Cache StringLine[]s in StringLineGroup with a custom ArrayPoolf73cbe4Resize LineOffsets to sufficient Capacity before adding itemsed5eea5Cache List in AutoLinkParser0987fabSeal internal types8913341Mark Readonly structs as Readonly2761e36Optimize StringSlice primitives📊 Changes
28 files changed (+567 additions, -309 deletions)
View changed files
📝
appveyor.yml(+1 -1)📝
changelog.md(+1 -0)📝
src/Markdig.Tests/TestStringSliceList.cs(+12 -2)📝
src/Markdig/Extensions/AutoIdentifiers/AutoIdentifierExtension.cs(+24 -9)📝
src/Markdig/Extensions/AutoLinks/AutoLinkParser.cs(+164 -156)📝
src/Markdig/Extensions/SmartyPants/SmartyPantsInlineParser.cs(+5 -5)📝
src/Markdig/Extensions/Tables/GridTableParser.cs(+2 -2)📝
src/Markdig/Extensions/Tables/GridTableState.cs(+1 -1)📝
src/Markdig/Helpers/CharHelper.cs(+13 -10)📝
src/Markdig/Helpers/CompactPrefixTree.cs(+1 -1)➕
src/Markdig/Helpers/CustomArrayPool.cs(+86 -0)📝
src/Markdig/Helpers/HtmlHelper.cs(+1 -1)📝
src/Markdig/Helpers/StringBuilderExtensions.cs(+8 -1)📝
src/Markdig/Helpers/StringLine.cs(+1 -1)📝
src/Markdig/Helpers/StringLineGroup.cs(+32 -19)📝
src/Markdig/Helpers/StringSlice.cs(+105 -76)📝
src/Markdig/Markdig.targets(+1 -1)📝
src/Markdig/Markdown.cs(+12 -3)📝
src/Markdig/MarkdownPipeline.cs(+38 -1)📝
src/Markdig/Parsers/BlockProcessor.cs(+6 -1)...and 8 more files
📄 Description
A bunch of random optimizations.
Most interesting (and responsible for perf) ones to look at are:
253be5cafe4308aefad21I was mainly playing whack-a-mole with memory allocations, time improvement comes mainly from
253be5c.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.